媒体播放器应该只播放Audiofile的最后几秒钟

时间:2013-04-04 08:27:49

标签: java android media-player seconds playsound

我想实现一个仅播放Audiofile的最后5秒(长度超过5秒)的功能。 Mediaplayer以某种方式支持吗?

我知道如何正常播放音频文件+我知道如何获取文件的持续时间,但是如何设置Mediaplayer只播放最后的短片? 这意味着在Audiofile中播放特定的时间码。

2 个答案:

答案 0 :(得分:2)

实现此功能的一种方法是使用MediaPlayer.getDuration()方法获取音频文件的持续时间,然后使用MediaPlayer.seetTo() API移动到该位置..

在您的情况下,您可以尝试mediaPlayer.seekTo(mediaPlayer.getDuration()-(5*1000)); ...

答案 1 :(得分:1)

准备好后,您可以拨打seekTo

看一下这个例子:

this._mediaPlayer = new MediaPlayer();
this._mediaPlayer.reset();
this._mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
this._mediaPlayer.setDataSource( _data_source_ );
this._mediaPlayer.setOnSeekCompleteListener(this);
this._mediaPlayer.prepare();
this._mediaPlayer.start();
/* Seeking to 1 minute */
this._mediaPlayer.seekTo(60 * 1000);
/* Issue a start in the OnSeekCompleteListener */

调整此示例以获取流准备好后的持续时间并查找持续时间 - 5秒(如果媒体长度至少为5秒,则视情况而定)。

然而,似乎Android在寻找无缓冲的媒体时会遇到与使用seekTo相关的错误。请查看thisthis以获取更多信息。此错误应该已在 Android 2.2 中解决。