音视频播放开发指导
使用场景
音视频播放是将音视频文件或音视频流数据进行解码并通过输出设备进行播放的过程,同时对播放任务进行管理。
接口说明
音视频播放API接口功能如下,具体的API详见接口文档。
表 1 音视频播放API接口
约束与限制
输入源为音视频流时,不支持播放进度控制和获取文件时长。
开发步骤
-
实现PlayerCallback回调,通过SetPlayerCallback函数进行绑定,用于事件处理。
class TestPlayerCallback : public PlayerCallback{ void OnPlaybackComplete() override { //此处实现代码用于处理文件播放完成的事件 } void OnError(int32_t errorType, int32_t errorCode) override { //此处实现代码处理错误事件 } void OnInfo(int type, int extra) override { //此处实现代码处理普通事件 } void OnRewindToComplete() override { //此处实现代码处理进度控制完成的事件 } };
-
创建Player实例,设置播放源并开始播放。
Player *player = new Player(); std::shared_ptr<PlayerCallback> callback = std::make_shared<TestPlayerCallback>(); player->SetPlayerCallback(callback);//设置player回调 std::string uri(filePath);//此处filePath为本地文件路径 Source source(uri);//保存uri到source实例 player->SetSource(source);//将source设置到player player->Prepare();//准备播放 player->SetVideoSurface(surface);//设置播放窗口 player->Play();//开始播放
-
根据场景需要进行播放控制。
player->SetVolume(lvolume, rvolume);//设置左右声道声音 player->EnableSingleLooping(true);//设置循环播放 player->Pause();//暂停 player->Play();//继续播放
-
播放任务结束后,进行资源释放。
player->Stop(); //停止播放 player->Release();//释放资源