Android中有Play,Pause,Rewind,Fast Forward方法吗?

我正在开发一个Android应用程序,允许用户对设备说话。 然后我想保存它,然后倒回它的一部分再次播放它,可能快进到音频的另一部分,暂停它,播放它等。就像一个基本的录音机。

是否有任何构建的API或方法或代码允许这样做? 如果没有,那么我从哪里开始呢?

任何帮助将不胜感激。

使用MediaPlayer,您可以在流中寻找不同的位置,但这与播放快进(或快退)不同,在DVR中也称为“特技播放”。

但是,快进可以使用seekTo实现,如下所示:

  • 每100 毫秒设置一个定期计时器(即postDelayed或scheduleAtFixedRate )。
  • 在计时器的Runnable中,调用seekTo,其值是表示所需播放速率的因子。
    • 因此,如果您想要2倍快进,那么在每100毫秒后,您将寻求curr_pos + 100毫秒。 这意味着100 msecs已经通过,但现在你在prev_pos + 200 msecs。
    • 执行4倍意味着每100毫秒后你会寻求curr_pos + 300毫秒。

  • 我刚刚意识到seekTo可能寻求最近的参考或I帧。 所以调用seekTo(curr_pos + 100)可能无法到达你想要的精确位置。

我可能需要在我正在制作的video播放器中实现FF。 如果我开始工作,我会在这里更新我的答案。

使用AudioRecorder记录数据。 使用PCM格式。

然后你可以通过AudioTrack选择性地播放它。