Skip to content

多媒体服务接口


1. 第一视角图像

简介:采用OWT拉流形式获取图像内容,参考以下步骤和接口实现。

1.1. 设置回调函数

SetCallbacks简介

cpp
/**
 * @brief 设置回调函数。
 * 
 * 该函数用于设置回调函数。
 * 
 * @param onConnectServerSuccess 连接服务器成功时触发。
 * @param onConnectServerFailure 连接服务器失败时触发。
 * @param onPublishSuccess 推流成功时触发。
 * @param onPublishFailure 推流失败时触发。
 * @param onDisconnectServerSuccess 断开服务器成功时触发。
 * @param onDisconnectServerFailure 断开服务器失败时触发。
 * @param onRenderRemote 渲染远程视频时触发。
 * @param onRenderLocal 渲染本地视频时触发。
 */
void SetCallbacks(OnConnectServerSuccess onConnectServerSuccess,
                OnConnectServerFailure onConnectServerFailure,
                OnPublishSuccess onPublishSuccess,
                OnPublishFailure onPublishFailure,
                OnDisconnectServerSuccess onDisconnectServerSuccess,
                OnDisconnectServerFailure onDisconnectServerFailure,
                OnRenderCallback onRenderRemote,
                OnRenderCallback onRenderLocal);

使用示例

cpp
RTCP2PClient* p2p_client = new RTCP2PClient();
p2p_client->SetCallbacks(
    &OWTCallbacks::on_connect_success,
    &OWTCallbacks::on_connect_failure,
    &OWTCallbacks::on_publish_success,
    &OWTCallbacks::on_publish_failure,
    &OWTCallbacks::on_disconnect_success,
    &OWTCallbacks::on_disconnect_failure,
    &OWTCallbacks::on_render_remote,
    &OWTCallbacks::on_render_locate
);

1.2. 拉流端初始化

Init简介

cpp
/**
 * @brief 初始化owt客户端。
 * 
 * 该函数用于初始化owt客户端。
 * 
 * @param videoCodec 视频传输格式,当前支持"VP8","VP9"。
 * @param maxBitrateKbps 最大比特率,在网络状况良好的情况下传输的最大比特率。
 */
void Init(std::string videoCodec, int maxBitrateKbps);

使用案例

cpp
p2p_client->Init("VP9", 3000);

1.3. 设置ICE Server

AddIceServer简介

cpp
/**
 * @brief 设置ICE Server服务器。
 * 
 * 该函数用于设置ICE Server,ICE Server用于NAT穿越。
 * 
 * @param url ICE Server url。
 * @param username ICE Server用于鉴权的用户名。
 * @param password ICE Server用于鉴权的pwd。
 */
void AddIceServer(std::string url, std::string username, std::string password);

使用案例

cpp
p2p_client->AddIceServer("stun:stun.l.google.com:19302", "your_username", "your_password");
p2p_client->AddIceServer("turn:turn.example.com:3478", "your_username", "your_password");

1.4. 设置推流端用户ID

cpp
/**
 * @brief 设置remoteId。
 * 
 * 该函数用于设置remoteId。
 * 
 * @param remoteId remoteId。
 */
void SetRemoteId(std::string remoteId);

使用案例

cpp
p2p_client->SetRemoteId(remoteId);

1.5. C++ 接口

Connect简介

cpp
/**
 * @brief 连接信令服务器指令。
 * 
 * 该函数用于连接信令服务器。
 * 
 * @param url 信令服务器 url。
 * @param userId 当前用户的userId,作为本客户端的唯一标识符。
 */
void Connect(std::string url, std::string userId);

使用案例

cpp
p2p_client->Connect(owt_url, userId);