我是音频格式的新手。
当我从设备B接收到音频数据时,我正试图在设备A上逐块播放音频数据。问题是,只是一块一块地播放不会产生任何声音。如果我把所有的方块组合起来,然后玩,效果很好。但我想让应用程序播放实时数据,这意味着我想在收到部分音频数据的那一刻播放,即使竞争音频文件尚未发送。我想区块必须以特定的格式才能播放。
我在网上搜索了一下,发现MPEG_4可以分块播放,只要每个块都有一个标题。我想知道是否可以手动为每个区块添加一个标头。
我尝试记录多个样本,注意到它们在开头都有公共字节,如下所示:
0000 0018 6674 7970 6d70 3432 0000 0000
6973 6f6d 6d70 3432 0000 ....the rest..
这些公共字节是标题吗我想知道设备a是否有某种方法可以判断某个区块是否可以播放,这样我就可以在收到区块后立即播放它?
想一想这个问题就会有帮助!提前感谢!
我想自己回答这个问题。
首先,不要坚持使用MediaPlayer,因为它不能录制PCM文件。
实际上,PCM文件满足所有要求,因为它应用了原始文件格式(意味着它没有被压缩(。可以逐帧播放PCM文件。一旦在记录器和播放器中定义了采样率和其他参数,帧的大小(例如640字节(就被固定。
同时检查AudioRecord
和AudioTrack
类,因为它可以录制和播放PCM文件。