在A点和B点之间播放音频

kar*_*iks 6 audio android android-mediaplayer

如何设置From和To Timestamp标记并在音频文件的这两个点之间播放媒体?我没有在Android中看到MediaPlayer的监听器API.想知道如何实现这一目标?

我的情况是这样的:将音频文件分成许多这样的部分,让用户按照自己的意愿交互式播放/重放选择部分.

例如,假设一个小的音频文件被分成3个部分(A --- B --- C --- D),即AB,BC和CD.用户选择BC部分并选择播放.然后音频从B点开始播放并在到达C点时停止.用户可以再次播放BC部分或选择继续下一部分.

虽然更容易决定找出起点并使用mediaPlayer.seekTo(int)API,但我怎么能让音频停在终点?这方面最好的方法是什么?

非常感谢您的帮助.

kar*_*iks 1

我实现这个的方法如下:

private MediaPlayer mediaPlayer;
private Runnable runnable = new Runnable() {
    @Override
    public void run() {
        mediaPlayer.pause();
        playPauseButton.setText(R.string.play);
    }
};

private void play(int start, int duration) {
    mediaPlayer.seekTo(start);
    handler.postDelayed(runnable, duration);
}
Run Code Online (Sandbox Code Playgroud)

我已经复制了与此上下文相关的代码的关键部分。当我这样做时,我对这个实现不是特别满意,因为这仍然不准确。

我想看看是否有人使用替代 API 来实现这一点的准确性,可能是使用 Android 的 AudioTrack API 或类似的东西。

据我所知,这似乎是目前最好的替代方案。如果我找到更好的方法,我将更新这篇文章,在那之前,我希望这对您和我一样有用。干杯!