包名 com.music.musicmenu 正常;改為 com.android.music 後頻譜不動。
com.android.music 是 **系統預設音樂 App** 的包名,享有系統級權限、簽名、共享 UID。MediaPlaybackService、Visualizer 等核心類載入異常。com.yourcompany.musicplayer)。MediaStore ContentProvider 查詢,無需冒充系統包名。Visualizer 類搭配 AudioSessionId,參考官方 Visualizer 文檔。
Visualizer visualizer = new Visualizer(audioSessionId);
visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
@Override public void onWaveFormDataCapture(Visualizer v, byte[] waveform, int samplingRate) {
// 更新 UI 波形
}
@Override public void onFftDataCapture(Visualizer v, byte[] fft, int samplingRate) {
// 更新頻譜
}
}, Visualizer.getMaxRate(), true, false);
visualizer.setEnabled(true);