gpt4 book ai didi

android - 媒体播放器和 seekTo 的奇怪行为

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:50:03 24 4
gpt4 key购买 nike

我正在实现自定义视频播放器,因为我需要自定义视频控件。我有一个只有一个 Activity 的应用程序,它在启动时会立即开始播放视频。

现在,我遇到的问题是:

我不想让视频从头开始,而是从后面的位置开始。因此我做了一个 seekTo(16867)。由于 seekTo 是异步的,我将媒体播放器 (player.start()) 的启动调用放在 onSeekCompleteListener 的 onSeekComplete 中。

但我遇到的奇怪行为是,我可以看到/听到视频从头开始播放几毫秒,然后它才真正从/跳转到我想要的位置播放。但是 - 另一方面 - 我在 player.start 之前调用的日志输出返回正确的位置 16867,这是我寻求的位置。

下面是相关代码部分,完整类在http://pastebin.com/jqAAFsuX

(我在 Nexus One/2.2 StageFright 上)

private void playVideo(String url) {
try {
btnVideoPause.setEnabled(false);
if (player==null) {
player=new MediaPlayer();
player.setScreenOnWhilePlaying(true);
}
else {
player.stop();
player.reset();
}
url = "/sdcard/myapp/main/videos/main.mp4"; // <--- just for test purposes hardcoded here now
player.setDataSource(url);
player.setDisplay(holder);
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setOnCompletionListener(this);
player.setOnPreparedListener(this);

player.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() {
public void onSeekComplete(MediaPlayer mediaPlayer) {
Log.d("APP", "current pos... "+ player.getCurrentPosition() );
player.start(); // <------------------ start video on seek completed
player.setOnSeekCompleteListener(null);
}
});
player.prepareAsync();
}
catch (Throwable t) {
Log.e(TAG, "Exception in btnVideoPause prep", t);
}
}

public void onPrepared(MediaPlayer mediaplayer) {
width=player.getVideoWidth();
height=player.getVideoHeight();
if (width!=0 && height!=0) {
holder.setFixedSize(width, height);
progressBar.setProgress(0);
progressBar.setMax(player.getDuration());
player.seekTo(16867); // <------------------ seeking to position
}
btnVideoPause.setEnabled(true);
}

最佳答案

由于我也没有收到 Android 开发者列表的任何回复,并且在网络上发现了类似的问题,因此我断定这是一个错误。我在 http://code.google.com/p/android/issues/detail?id=9135 提交了错误报告

关于android - 媒体播放器和 seekTo 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3050717/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com