前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >腾讯实时音视频 分享系统声音

腾讯实时音视频 分享系统声音

原创
作者头像
zqh
修改2023-02-10 10:14:16
2.5K0
修改2023-02-10 10:14:16
举报
文章被收录于专栏:zqhzqh

什么是分享系统声音?举个例子,如果你常关注游戏直播,那这种直播方式你一定不陌生,直播中不仅可以看到主播当前屏幕所展示的画面,也能听到主播的声音和游戏的声音,简单分析一下功能点:

1、看到主播当前屏幕所展示的画面可使用屏幕分享实现,这里腾讯实时音视频(简称TRTC,后文统一使用简称)SDK已支持;

2、主播的声音是通过主播那边麦克风采集到后上行

3、听到游戏的声音,这里我们要介绍的就是利用TRTC SDK实现将游戏的声音分享到直播间里使其他用户听到

为了更直观些也可看看下面这张腾讯会议的截图,被红框框起来的部分就是分享系统声音

腾讯会议截图
腾讯会议截图

下面介绍TRTC SDK各个端怎么实现分享系统声音:

iOS

首先实现iOS屏幕分享可参考官网文档:https://cloud.tencent.com/document/product/647/45750

这里iOS 跨应用分享使用的是苹果提供的用于 iOS 系统进行屏幕录制的框架ReplayKit,这里我们来看一下ReplayKit 的数据回调接口(SampleHandler.m中):

代码语言:txt
复制
- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
    
    switch (sampleBufferType) {
        case RPSampleBufferTypeVideo:
            [[TXReplayKitExt sharedInstance] sendVideoSampleBuffer:sampleBuffer];
            break;
        case RPSampleBufferTypeAudioApp:
            // Handle audio sample buffer for app audio
            break;
        case RPSampleBufferTypeAudioMic:
            // Handle audio sample buffer for mic audio
            break;

        default:
            break;
    }
    
}

从枚举 sampleBufferType 上可以看出刚好能符合我们对媒体流的需求,有视频流、音频流,音频流又分为麦克风录制进来的音频流(AudioMic),与当前响应的应用播放的音频流(AudioApp)。如果在屏幕分享过程中分享系统声音可直接如下调用

代码语言:txt
复制
- (void)processSampleBuffer:(CMSampleBufferRef)sampleBuffer withType:(RPSampleBufferType)sampleBufferType {
    //媒体数据(音视频)发送方法
    [[TXReplayKitExt sharedInstance] sendSampleBuffer:sampleBuffer withType:sampleBufferType];
}

需要8.6版本以上,升级版本时请将从官网下载下来的SDK文件里面的TRTC SDK和ReplayKitExt SDK一起替换,否则在屏幕分享时会报“版本不一致”问题

MAC

TRTC Mac 端分享系统声音需要安装虚拟声卡插件TRTCAudioPlugin.driver,集成以及调用可参考官网文档https://cloud.tencent.com/document/product/647/52989

需注意的是Mac端分享系统声音需8.4版本以上,9.4版本增加对系统声音采集 startSystemAudioLoopback 的双声道支持。

Windows

Windows端算是最简单的了,直接调startSystemAudioLoopback这个接口

startSystemAudioLoopback
startSystemAudioLoopback

Web

支持屏幕分享以及系统声音分享

实现的话看接口文档介绍https://web.sdk.qcloud.com/trtc/webrtc/doc/zh-cn/TRTC.html#createStream

安卓

更新一下,安卓也支持分享系统声音了https://cloud.tencent.com/document/product/647/79928

小程序

不支持屏幕分享以及系统声音分享......

还有一点需要注意的是iOS、Mac、Windows、分享系统声音的流与麦克风采集的音频走的同一路流,就是说上行时需要调startLocalAudio,调muteLocalAudio会静音,调stopLocalAudio会停止采集上行,使用时要注意哦。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
实时音视频
实时音视频(Tencent RTC)基于腾讯21年来在网络与音视频技术上的深度积累,以多人音视频通话和低延时互动直播两大场景化方案,通过腾讯云服务向开发者开放,致力于帮助开发者快速搭建低成本、低延时、高品质的音视频互动解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档