> 文章列表 > 【GB28181】PJSIP库(五)使用音频:捕获、播放、传输、接收、录制等

【GB28181】PJSIP库(五)使用音频:捕获、播放、传输、接收、录制等

【GB28181】PJSIP库(五)使用音频:捕获、播放、传输、接收、录制等

【目录】郭老二博文之:图像视频汇总

1、简介

PJSUA2 的媒体对象均派生自抽象基类pj::Media,媒体对象是指能够生成或读取媒体的对象。
类pj::AudioMedia派生自pj::Media,代表音频媒体。
PJSUA2 支持多种类型的音频媒体对象:

从声音设备中捕获音频的AudioMedia;
向声音设备播放音频的AudioMedia;
向远程人员传输音频或从远程人员接收音频的AudioMedia;
播放 WAV 文件的pj::AudioMediaPlayer;
将音频录制到 WAV 文件中的pj::AudioMediaRecorder;

2、会议桥

会议桥(The conference bridge)是为了管理音频媒体之间的音频流所创建的概念。
原理很简单;应用程序将音频源连接到音频目的地,桥接器使音频从该源流向指定的目的地,仅此而已。如果多个源正在传输到同一目的地,则来自这些源的音频将被混合。如果一个源传输到多个目的地,桥接器负责将音频从源复制到多个目的地。该桥甚至会处理具有不同时钟速率和 ptime(每包音频数据的时长) 的混合媒体。

在 PJSUA2 中,所有音频媒体对象都注册到中央会议桥以便于操作。注册到中央会议桥的音频媒体不会连接到任何东西,因此媒体不会流出/流向任何对象。音频媒体源可以使用pj::AudioMedia::st