我创建了一个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());