我使用一些具有 VOIP 功能的 Android SDK。
当接收到语音数据时,会触发一些事件。每次它被触发时,它都有一个 byte[] ,这是一个 OPUS 帧。所以这个事件被触发了几次,每次都有新的框架。
我的问题是,我怎样才能用它创建一个可播放的音频文件?我尝试创建一个 byte[] ,每次触发事件时,向其附加一个数据,然后将这个数组保存到一个文件中,然后播放它。
它没有用,我错过了什么?
Android 可以播放存储在Matroska / WebM容器或Ogg容器中的 Opus。Matroska 可以使用libmatroska库编写。Ogg 可以使用libogg库编写。
如果您只是一个接一个地连接数据包,那么这将丢失数据包边界。数据包的长度各不相同,并且需要每个数据包的长度来对其进行解码。