重复使用安卓的MediaPlayer

3
我正在使用Android的MediaPlayer类来播放一些远程资源。我希望用户能够重复使用MediaPlayer打开一些内容,然后更改以播放另一个内容,而无需重新创建MediaPlayer
因此,我编写了一个方法来打开资源,首先重置MediaPlayer,以便将其发送到空闲状态。之后,我设置新的URI并调用准备方法。但是经常发生的情况是,方法setDataSource会挂起,持续数秒甚至数分钟。以下是代码:
mediaPlayer.reset();  
mediaPlayer.setDataSource(this, Uri.parse(uri));  
mediaPlayer.setDisplay(surfaceHolder);  
mediaPlayer.prepare();  
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

你有没有想过为什么在setDataSource之后,在setDisplay方法之前,该方法会挂起多秒钟?

谢谢!
1个回答

1

看起来问题与我所使用的具体设备有关。我在另一台设备上测试了完全相同的代码,而且在Android 2.2(我之前在Android 2.1下遇到这个问题)上运行得非常顺利。 - Luca Carlon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接