繁体   English   中英

重用Android的MediaPlayer

[英]Reusing Android's MediaPlayer

我正在使用Android的MediaPlayer类来播放一些远程资源。 我希望用户能够重用MediaPlayer打开一些内容,然后将其更改为播放另一个内容,而无需重新创建MediaPlayer

所以,我写了一个方法来打开一个资源,首先,重置MediaPlayer以便我可以将它发送到空闲状态。 之后,我设置了新的URI,并调用了prepare方法。 无论如何,它经常发生,方法setDataSource挂起很多秒甚至几分钟。 这是代码:

mediaPlayer.reset();  
mediaPlayer.setDataSource(this, Uri.parse(uri));  
mediaPlayer.setDisplay(surfaceHolder);  
mediaPlayer.prepare();  
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

知道为什么该方法应该在setDataSource之后和setDisplay方法之前挂起很多秒? 谢谢!

这可能是:“必须在prepare()或prepareAsync()之前调用[setAudioStream]方法,以便目标流类型此后生效。”

http://developer.android.com/reference/android/media/MediaPlayer.html#setAudioStreamType(int

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM