Visualizer在使用排队的MediaPlayer时返回全零



我创建了一个MediaPlayer,然后使用setNextMediaPlayer对下一个MediaPlayer进行排队。然后,我在第一个播放器的基础上创建了一个Visualizer。一切都很好,直到歌曲切换,然后可视化工具只发送-128或0。

我尝试使用OnInfoListener来捕获MEDIA_INFO_STARTED_AS_NEXT事件,并使用传入的MediaPlayer来重新创建可视化。我验证了这个玩家正在玩,但它仍然没有收到任何有效的数据。

这就是我创建Visualizer的方式。注Irelease((调用此之前的旧Visualizer。:

public Visualizer createVisualizer(MediaPlayer _player) {
if (_player != null) {
Visualizer visualizer = new Visualizer(_player.getAudioSessionId());
visualizer.setScalingMode(Visualizer.SCALING_MODE_NORMALIZED);
visualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[0]);
visualizer.setDataCaptureListener(this, Visualizer.getMaxCaptureRate() / 4, true, false);
visualizer.setEnabled(true);
return visualizer;
}
return null;
}

我唯一能想到的是,这与重用听众有关,但我现在真的不知道。

我可以通过使用强制下一个播放器的audioSessionId与第一个播放器相同来实现这一点

playerNext.setAudioSessionId(playerFirst.getAudioSessionId());

最新更新