我正在尝试在Android上使用MediaCodec API来解码AAC流.(它是原始的AAC.)我尝试使用MediaFormat.createAudioFormat()创建格式对象以传递给MediaCodec.configure(),但是在使用AAC(audio/mp4a-latm)时我一直遇到错误.(它适用于MP3(音频/ mpeg)虽然...)
最后,我为AAC文件创建了一个MediaExtractor,并查看了它正在生成的格式对象.我看到它包含了一个ByteBuffer的密钥"csd-0",它由两个字节组成,值均为0x12.如果我在用于配置AAC编解码器的格式对象中包含该键和值,则一切正常.
有谁知道发生了什么?文档说明我不应该配置该密钥.有没有人有一个指向MediaCodec示例的指针来解码AAC文件而不使用MediaExtractor来生成格式对象?
我有一个项目清单通过期货::派Sink
:
let mut list = VecDeque::new();
/* add a bunch of Packet items to list */
let (sink, stream) = tcp_stream.framed(PacketCodec).split();
Run Code Online (Sandbox Code Playgroud)
我可以使用发送一个数据包
if let Some(first) = list.pop_front() {
sink.send(first);
}
Run Code Online (Sandbox Code Playgroud)
如何发送整个列表?