【发布时间】:2012-02-06 13:03:25
【问题描述】:
我在 Honeycomb 上使用 MediaPlayer,无法在函数 onPrepared() 中获取任何 HLS(http 直播)视频的持续时间。
如果在prepare()之后调用getDuration(),则返回0:
public void onPrepared(MediaPlayer mp) {
// getduration returns 0
mediaPlayer.start();
Log.d(TAG, "duration: " + mediaPlayer.getDuration());
}
但是,视频开始播放。
如果在onVideoSizeChanged() 中调用getDuration(),它会返回正确的值,
public void onVideoSizeChanged(MediaPlayer mp, int width, int height) {
// returns the correct value
Log.d(TAG, "duration: " + mediaPlayer.getDuration());
}
为什么getDuration() 在onVideoSizeChanged() 中有效,而在onPrepared() 中无效?
编辑:起初我以为 getDuration() 根本不起作用,但发现它在 onVideoSizeChanged() 中返回了正确的值。修改问题以反映这一点。
【问题讨论】:
标签: android http-live-streaming android-mediaplayer