我正在编写包含 LibVLC MediaPlayer 实现的Android应用活动。 MediaPlayer
在大多数情况下都可以正常工作,但是根据视频结论,MediaPlayer
将变得无响应。 从我的研究看来,这可能是因为媒体在MediaPlayer.Event.EndReached
开火(vajehu)后变得不安。
我一直在注意MediaPlayer.getPlaybackState()
,并且可以看到回放结束时MediaPlayer
对象正处于“ Ended” 状态。 / p>
我可以继续释放我的MediaPlayer
并在MediaPlayer.Event.EndReached
被解雇时重新创建它,但是不确定这是否是一个好的做法。我希望MediaPlayer
返回视频的开头,并等待用户输入以再次开始播放。
(如果相关,我正在使用MrMaffen's vlc-android-sdk)。
答案 0 :(得分:0)
此后,我为此找到了一个整洁(更重要的是 高效!)解决方案;
在MediaPlayer.Event.EndReached
上触发我:
MediaPlayer.setMedia(media)
重新加载Media
对象MediaPlayer
相关的UI元素MediaPlayer
的位置设置为Media
到MediaPlayer.setTime(0)
对象的开头 附带说明:由于LibVLC的MediaPlayer.setTime(Long position)
方法只有在MediaPlayer.isPlaying()
才有效,所以我需要编写一个小的包装方法来异步:
MediaPlayer.play()
并等待MediaPlayer.isPlaying()
MediaPlayer.setTime(0)
MediaPlayer.pause()
比我期望的要简单得多的解决方案,尽管我希望这对从事相同类型项目工作的人有所帮助。