【问题标题】:how to use Android MediaPlayer to play audio data by chunks of bytes如何使用 Android MediaPlayer 按字节块播放音频数据
【发布时间】:2020-11-16 06:44:10
【问题描述】:

我是音频格式的新手。

当我从设备 B 接收音频数据时,我正尝试在设备 A 上逐块播放音频数据。问题是简单地逐块播放不会产生任何声音。如果我组合所有块然后播放,它工作正常。但是我想让应用程序播放实时数据,这意味着我想在收到部分音频数据的那一刻播放它,即使尚未发送完整的音频文件。我猜这个块必须是某种格式才能播放。

我在网上搜索,得知MPEG_4可以分块播放,只要每个块都有一个标题。我想知道是否可以手动为每个块添加标题。

我尝试记录多个样本,发现它们的开头都有共同的字节,如下所示:

0000 0018 6674 7970 6d70 3432 0000 0000
6973 6f6d 6d70 3432 0000 ....the rest..

这些公共字节是header吗?我想知道设备A是否可以通过某种方式判断某个块是否可以播放,以便我一收到该块就可以播放它?

对这个问题的任何想法都会有所帮助!提前致谢!

【问题讨论】:

    标签: android audio streaming media-player


    【解决方案1】:

    我想自己回答这个问题。

    首先,不要坚持使用 MediaPlayer,因为它不能录制 PCM 文件。

    实际上 PCM 文件满足所有要求,因为它应用了原始文件格式(意味着它没有被压缩)。可以逐帧播放 PCM 文件。一旦在记录器和播放器中定义了采样率和其他参数,帧的大小(例如 640 字节)就固定了。

    还可以查看 AudioRecordAudioTrack 类,因为它可以录制和播放 PCM 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多