首次推送
This commit is contained in:
+41
@@ -0,0 +1,41 @@
|
||||
第一阶段:先把单人播放跑通
|
||||
1.
|
||||
同时允许 codec 4 和 5;
|
||||
2.
|
||||
建立一个有界语音帧队列;
|
||||
3.
|
||||
由单个协程顺序消费;
|
||||
4.
|
||||
使用 libopus 解码裸 Opus 数据;
|
||||
5.
|
||||
将 PCM 顺序写入 AudioTrack;
|
||||
6.
|
||||
增加丢包处理和基本抖动缓冲;
|
||||
7.
|
||||
验证声音、速度、音调是否正常。
|
||||
第二阶段:多人语音
|
||||
1.
|
||||
每个客户端独立 Opus decoder;
|
||||
2.
|
||||
根据 packet sequence 做重排;
|
||||
3.
|
||||
缺包时调用 Opus PLC;
|
||||
4.
|
||||
多路 PCM 饱和混音;
|
||||
5.
|
||||
混音结果写入一个 AudioTrack;
|
||||
6.
|
||||
清理长时间无数据的客户端 decoder。
|
||||
第三阶段:Android 音频体验
|
||||
1.
|
||||
使用 AudioManager.MODE_IN_COMMUNICATION;
|
||||
2.
|
||||
请求 audio focus;
|
||||
3.
|
||||
正确切换扬声器、听筒、蓝牙耳机;
|
||||
4.
|
||||
实现输出音量;
|
||||
5.
|
||||
处理电话、耳机插拔、应用后台和断线;
|
||||
6.
|
||||
根据生命周期释放 AudioTrack 和解码器。
|
||||
Reference in New Issue
Block a user