在实时音视频场景中,有时候为烘托气氛、增添趣味性,用户通常需要播放音乐文件。本文介绍如何在你的项目中实现播放音乐文件功能。相关函数接口在 c++-sdk 2.5.5 及以上版本支持。
通过接口 startPlayMusic 播放指定音乐文件和 ID ,并设置播放该文件的参数。若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
class BRTCMusic : public brtc::BRTCMusicPlayObserver { public: // Implement BRTCMusicPlayObserver virtual void onStart(int id, int errCode) override; virtual void onPlayProgress(int id, long curPtsMS, long durationMS) override; virtual void onComplete(int id, int errCode) override; private: brtc::AudioMusicParam* bgmParams_; brtc::BRTCAudioEffectManager* ptrAudioEffectMgr_; }; BRTCMusic::BRTCMusic() { bgmParams_ = new AudioMusicParam(0, NULL); bgmParams_->publish = true; ptrAudioEffectMgr_ = BRTCCore::GetInstance()->getAudioEffectManager(); } void BRTCMusic::PlayBGMMusic() { string* musicPath = new std::string("D:/music/test01.mp3"); // musicId 为 4 bgmParams_->id = 4; bgmParams_->path = const_cast<char*>(musicPath->c_str()); // 将本地播放的音乐发送到远端 bgmParams_->publish = true; // 需要循环播放 2 遍 bgmParams_->loopCount = 2; ptrAudioEffectMgr_->startPlayMusic(*bgmParams_); delete musicPath; ptrAudioEffectMgr_->setMusicObserver(4, this); } void BRTCMusic::musicAction() { // 停止播放指定 musicid 音乐 ptrAudioEffectMgr_->stopPlayMusic(4); // 暂停播放 musicId 音乐 ptrAudioEffectMgr_->pausePlayMusic(4); // 恢复播放 musicId 音乐 ptrAudioEffectMgr_->resumePlayMusic(4); // 设置所有背景音乐的本地播放音量和远端音量为 90 ptrAudioEffectMgr_->setAllMusicVolume(90); // 设置指定 musicId 音乐的本地播放音量为 90 ptrAudioEffectMgr_->setMusicPlayoutVolume(4, 90); // 设置指定 musicId 音乐的远端音量为 90 ptrAudioEffectMgr_->setMusicPublishVolume(4, 90); // 设置指定 musicId 音乐的音调为 0.3,如果不设置,默认为 0 ptrAudioEffectMgr_->setMusicPitch(4, 0.3); // 设定背景音乐的播放速度为 1.1,默认为 1.0 ptrAudioEffectMgr_->setMusicSpeedRate(4, 1.1); // 设置从音乐文件的 40 秒处开始播放 ptrAudioEffectMgr_->seekMusicToPosInMS(4, 40*1000); }
void BRTCMusic::onStart(int id, int errCode) { LOG(INFO) << "music start play musicid:" << id << ", error code:" << errCode; } void BRTCMusic::onPlayProgress(int id, long curPtsMS, long durationMS) { LOG(INFO) << "music play progress musicid:" << id << ", current postion:" << curPtsMS <<", total duration:"<<durationMS; } void BRTCMusic::onComplete(int id, int errCode) { LOG(INFO) << "music play complete musicid:" << id << ", error code:" << errCode; }
播放音乐文件
在实时音视频场景中,有时候为烘托气氛、增添趣味性,用户通常需要播放音乐文件。本文介绍如何在你的项目中实现播放音乐文件功能。
相关函数接口在 c++-sdk 2.5.5 及以上版本支持。
播放音乐文件
通过接口 startPlayMusic 播放指定音乐文件和 ID ,并设置播放该文件的参数。若您希望同时播放多首不同的音乐,请为不同的音乐分配不同的 ID 进行播放。
音乐播放回调接口实现