我想实现一个仅播放Audiofile的最后5秒(长度超过5秒)的功能。 Mediaplayer以某种方式支持吗?
我知道如何正常播放音频文件+我知道如何获取文件的持续时间,但是如何设置Mediaplayer只播放最后的短片? 这意味着在Audiofile中播放特定的时间码。
答案 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
相关的错误。请查看this和this以获取更多信息。此错误应该已在 Android 2.2 中解决。