已经有这样一个问题,但似乎解决方法建议根本不起作用。可视化器的输出仍受全局音量影响,当音量完全调低但MediaPlayer仍在播放时,它的值为零。
这是我的代码来重现此问题:
player=new MediaPlayer(); player.setAudioSessionId(SHARED_SESSION_ID); try { player.setDataSource("https://example.com/song.mp3"); player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mp.start(); } }); player.prepareAsync(); }catch(Exception x){ Log.w(TAG, x); } equalizer=new Equalizer(0, SHARED_SESSION_ID); equalizer.setEnabled(true); visualizer=new Visualizer(SHARED_SESSION_ID); int visualizerFftSize=Visualizer.getCaptureSizeRange()[1]; visualizer.setCaptureSize(visualizerFftSize); visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() { @Override public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) { int max=0, min=255; for(int i=0;i奇怪的是,来自ApiDemos的此示例在相同设备(Nexus 5,Nexus 4和Nexus 6P)上也能正常工作。我试图将其复制得尽可能近。我还尝试在初始化Visualizer之前或之后初始化和/或启用均衡器,但这绝对没有改变。