CN114025230A - 一种终端视频播放方法和相关装置 - Google Patents
一种终端视频播放方法和相关装置 Download PDFInfo
- Publication number
- CN114025230A CN114025230A CN202111320312.7A CN202111320312A CN114025230A CN 114025230 A CN114025230 A CN 114025230A CN 202111320312 A CN202111320312 A CN 202111320312A CN 114025230 A CN114025230 A CN 114025230A
- Authority
- CN
- China
- Prior art keywords
- audio
- avaudio
- category
- microphone
- setting
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000009877 rendering Methods 0.000 claims abstract description 26
- 230000004048 modification Effects 0.000 claims description 28
- 238000012986 modification Methods 0.000 claims description 28
- 238000012544 monitoring process Methods 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 claims description 9
- 241000209140 Triticum Species 0.000 claims description 7
- 235000021307 Triticum Nutrition 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 description 12
- 230000006399 behavior Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4394—Processing of audio elementary streams involving operations for analysing the audio stream, e.g. detecting features or characteristics in audio streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/431—Generation of visual interfaces for content selection or interaction; Content or additional data rendering
- H04N21/4312—Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/439—Processing of audio elementary streams
- H04N21/4398—Processing of audio elementary streams involving reformatting operations of audio signals
Abstract
本申请公开了一种视频播放方法和相关装置,在同时需要语音通话和视频播放的场景下,不再使用iOS移动操作系统中默认的AudioQueue进行音视频采集,而是使用AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO,通过改变视频播放器的音频渲染逻辑,iOS移动操作系统会将媒体声音当做通话声音,从而不会被回音消除出现被抑制甚至是听不到,避免了视频播放的媒体音量被抑制的问题,提高了用户的体验感。
Description
技术领域
本发明涉及视频播放技术领域,尤其是涉及一种终端视频播放方法和相关装置。
背景技术
终端是一台电脑或者计算机系统,用来让用户输入数据,及显示其计算结果的机器,简而言之就是用户与计算机交互的设备。例如,用于可以通过终端播放视频。
但是当用户使用安装iOS移动操作系统的终端播放视频时,若还有语音通话的需求,如在连麦语音聊天的同时播放视频,视频的媒体音量会被抑制,使得媒体音量较小或者是没有,用户的体验感较差。
发明内容
针对上述问题,本申请提供一种终端视频播放方法和相关装置,用于解决同时需要语音通话音量和媒体音量的场景下,视频播放的媒体音量被抑制的问题,提高用户的体验感。
基于此,本申请实施例公开了如下技术方案:
一方面,本申请实施例提供一种终端视频播放方法,所述方法包括:
接收启动实时音视频通信RTC的启动指令;
根据所述启动指令调用RTC软件开发工具包SDK进行连麦;
若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord;
若在连麦成功的条件下,接收媒体播放请求或检测到当前正在媒体播放,根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
可选的,所述方法还包括:
启动全局监控;
若在连麦成功的条件下接收修改所述AVAudioSeesionCategory的修改指令,拒绝所述修改指令;
若在连麦不成功的条件接收修改所述AVAudioSeesionCategory的修改指令,根据所述修改指令对应修改所述AVAudioSeesionCategory。
可选的,所述启动全局监控,包括;
通过钩子hook方式启动全局监控。
可选的,所述方法还包括:
若不在连麦成功的条件下接收媒体播放请求,根据所述媒体播放请求将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
可选的,所述根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO之后,还包括:
接收退出所述RTC的退出指令;
根据所述退出指令,设置所述AVAudioSeesionCategory为AVAudioSeesionCategoryPlayBack,并将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
另一方面,本申请实施例提供一种终端视频播放装置,所述装置包括:接收单元、调用单元和设置单元;
所述接收单元,用于接收启动实时音视频通信RTC的启动指令;
所述调用单元,用于根据所述启动指令调用RTC软件开发工具包SDK进行连麦;
所述设置单元,用于若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord;
所述接收单元,还用于若在连麦成功的条件下接收媒体播放请求;
所述设置单元,还用于根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
可选的,所述装置还包括:监控单元,用于启动全局监控;
所述设置单元,还用于:
所述若在连麦成功的条件下接收修改所述AVAudioSeesionCategory的修改指令,拒绝所述修改指令;
若在连麦不成功的条件接收修改所述AVAudioSeesionCategory的修改指令,根据所述修改指令对应修改所述AVAudioSeesionCategory。
另一方面,本申请实施例提供一种用于视频播放的设备,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上面方面所述的方法。
另一方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上面方面所述的方法。
另一方面,本申请实施例提供一种计算机程序产品,包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行上面方面所述的方法。
相对于现有技术,本申请上述技术方案的优点在于:
根据启动RTC的启动指令调用RTC SDK进行连麦,如果连麦成功,设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayAndRecord,进一步,如果在连麦成功后,又接收到媒体播放请求,即同时需要语音通话和视频播放的场景,根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。由此,在同时需要语音通话和视频播放的场景下,不再使用iOS移动操作系统中默认的Audio Queue进行音视频采集,而是使用AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO,通过改变视频播放器的音频渲染逻辑,iOS移动操作系统会将媒体声音当做通话声音,从而不会被回音消除出现被抑制甚至是听不到,避免了视频播放的媒体音量被抑制的问题,提高了用户的体验感。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本申请提供的一种终端视频播放方法的流程图;
图2为本申请提供的一种终端视频播放装置的示意图;
图3为本申请实施例提供的一种计算机设备的结构图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于理解本申请实施例,下面对本申请涉及的部分术语进行解释说明。
AVAudioSession,用于管理音频硬件资源的分配,通过调优合适的AVAudioSession来适配应用程序对于音频的功能需求。
AVAudioSessionCategory,音频会话类别,用于指定一个音频会话类别用来表达如何在应用程序中使用音频。
AVAudioSessionCategoryPlayback,一种音频会话类别,只允许音频输出,默认可以中断不可混合应用的音频,一般媒体播放使用该类别。
AVAudioSessionCategoryPlayAndRecord,允许音频输入和输出,属于一种音频会话类别,默认可以中断不可混合应用的音频,一般语音聊天使用该类别。
AVAudioSessionMode,用于定制AVAudioSessionCategory的行为。
AVAudioSessionModeVoiceChat,主要用于VoIP(一种互联网协议语音)场景,此时系统会选择最佳的输入设备,比如插上耳机就使用耳机上的麦克风进行采集。
AudioUnit,音频渲染模块,通常指一个音频单元实例,或者Audio Unit技术。iOS移动操作系统提供音频处理插件、支持混合、均衡、格式转换和实时输入/输出,用于录制、播放、离线渲染和实时对话,如VoIP。可以从iOS应用程序动态加载和使用AudioUnit。
AudioQueue,音频渲染模块,通常指一个音频单元实例,或者Audio Queue技术。音频队列是一个用来录制和播放音频的软件对象,他用AudioQueueRef这个不透明数据类型来表示,该类型在AudioQueue.h头文件中声明
AudioComponentDescription,组件属性描述,用于描述音频组件的唯一标识和标识的结构体,包括参数componentSubType。
kAudioUnitSubType_VoiceProcessingIO,与iOS设备的音频输入和输出接口并提供语音处理功能的音频单元。
RTC,Real-Time Communication,实时音视频通信。
kAudioUnitSubType_RemoteIO,远程输入输出。
SDK,Software Development Kit,软件开发工具包,是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等创建应用软件的开发工具的集合。
在同时需要语音通话和视频播放的场景下,如直播连麦聊天一起看视频、在线教室等,声音是最重要的内容传输渠道之一。在该场景下,存在进行语音、视频通话时的通话音量,以及播放音乐、视频或游戏的音效、背景音的媒体音量。在语音通话过程中,若双方各自看视频的媒体声音被采集并传输给对方,会导致对方在看视频的时候,不仅会听到自己视频中的媒体声音,还会从通话声音中听到对方视频的媒体声音,导致其观看视频的效果差。
基于此,iOS移动操作系统在语音通话时提供了回声消除功能,即通话音量有较好的回声消除以保证人声体验。其中,媒体音量和通话音量分别属于两个不同的、独立的系统,一个设置不会影响到另外一个。故此,系统音量只能在通话音量与媒体音量只能二选一。在进行语音通话时,系统音量是通话音量。退出语音通话后,系统音量是媒体音量。简单来说,非连麦模式下会使用媒体音量控制,连麦模式下会使用通话音量控制,两者有独立的音量控制机制。
具体地,进入语音通话后,iOS系统的播放音量由通话音量控制,即将AVAudioSession的AVAudioSessionCategory行为设置为AVAudioSessionCategoryPlayAndRecord,将AVAudioSessionMode设置为AVAudioSessionModeVoiceChat。退出通话后,iOS系统的播放音量由媒体音量控制,系统音频渲染需要对AVAudioSession的AVAudioSessionCategory行为设置为AVAudioSessionCategoryPlayback。
当播放媒体资源时,使用播放器(如AVPlayer等)播放音频,播放器底层AudioUnit的AudioComponentDescription为kAudioUnitSubType_VoiceProcessingIO。
RTC SDK内部维护了一个AudioUnit,通话音量下AudioUnit的AudioComponentDescription为RemoteIO,媒体音量下为VoiceProcessingIO,当出现模式切换时,会销毁原来的AudioUnit,再创建新的AudioUnit,始终保持一个AudioUnit来进行音频播放。
通话音量下,AVPlayer内VoiceProcessingIO的AudioUnit声音会被抑制。同样的,在媒体音量下,RTC SDK内的AudioUnit的AudioComponentDescription设置为kAudioUnitSubType_VoiceProcessingIO,如果此时其他模块通过设置AVAudioSession切换到通话音量,RTC的声音也会被抑制。
所以同时需要语音通话和视频播放的场景下,如开启直播连麦,会设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayAndRecord,此时媒体声音会被抑制而音量很小,几乎可能都听不到了,原因是iOS手机系统会开启回声消除以保证人声体验,这样的播放体验会很差。
基于此,本申请实施例一种终端视频播放方法,根据启动RTC的启动指令调用RTCSDK进行连麦,如果连麦成功,设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayAndRecord,进一步,如果在连麦成功后,又接收到媒体播放请求,即同时需要语音通话和视频播放的场景,根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。由此,在同时需要语音通话和视频播放的场景下,不再使用iOS移动操作系统中默认的Audio Queue进行音视频采集,而是使用AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO,通过改变视频播放器的音频渲染逻辑,iOS移动操作系统会将媒体音量当做通话音量,从而不会被回音消除出现被抑制甚至是听不到,避免了视频播放的媒体音量被抑制的问题,提高了用户的体验感。
下面结合图1,对本申请实施例提供的一种终端视频播放方法进行介绍。参见图1,该图是本申请提供的一种终端视频播放方法的流程图,该方法可以包括以下步骤101-105。
S101:接收启动实时音视频通信RTC的启动指令。
S102:根据启动指令调用RTC软件开发工具包SDK进行连麦。
作为一种可能的实现方式,可以将多种第三方提供的RTC SDK进行封装,作为RTC模块,通过RTC模块接收启动RTC的启动指令、退出指令等。当RTC模块接收启动指令后,调用内部封装的第三方SDK提供的接口进行连麦。
需要说明的是,RTC SDK会把连麦状态(连麦成功、连麦失败)通过消息等状态通知给RTC模块。
S103:若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord。
进入语音通话后,音效的播放音量由通话音量控制,即将AVAudioSession的AVAudioSessionCategory行为设置为AVAudioSessionCategoryPlayAndRecord,将AVAudioSessionMode设置为AVAudioSessionModeVoiceChat。
S104:若在连麦成功的条件下接收媒体播放请求或者检测到当前正在媒体播放,根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
若在连麦成功的条件下接收媒体播放请求,此时,属于同时需要通话音量和媒体音量的场景,为了媒体音量不被抑制,不再使用AudioQueue进行音视频采集,而是根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
若不在连麦成功的条件下,如连麦失败等,接收媒体播放请求,根据媒体播放请求将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
作为一种可能的实现方式,若在S104之后,接收退出RTC的退出指令,根据退出指令,设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayBack,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
由上述技术方案可以看出,根据启动RTC的启动指令调用RTC SDK进行连麦,如果连麦成功,设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayAndRecord,进一步,如果在连麦成功后,又接收到媒体播放请求,即同时需要语音通话和视频播放的场景,根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。由此,在同时需要语音通话和视频播放的场景下,不再使用iOS移动操作系统中默认的AudioQueue进行音视频采集,而是使用AudioUnit,并将AudioComponentDescriptionudioUnit的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO,通过改变视频播放器的音频渲染逻辑,iOS移动操作系统会将媒体音量当做通话音量,从而不会被回音消除出现被抑制甚至是听不到,避免了视频播放的媒体音量被抑制的问题,提高了用户的体验感。
作为一种可能的实施方式,在连麦过程中,在可能有插播广告等其他播放需求,会对AVAudioSession的设置进行变更,那么还需对AVAudioSession进行全局监听,如采用hook方式进行全局监听,然后统一调度是否进行真正的相应设置,否则会出现其他问题比如连麦声音听不到了等。
基于此,若在连麦成功的条件下接收修改AVAudioSeesionCategory的修改指令,如修改指令为将AVAudioSessionCategoryPlayAndRecord修改为AVAudioSessionCategoryPlayback,此时拒绝修改指令,或者说,在连麦成功的条件下,仅允许将AVAudioSessionCategory行为设置为AVAudioSessionCategoryPlayAndRecord,其他设置均不会生效。
若在连麦不成功的条件接收修改AVAudioSeesionCategory的修改指令,根据修改指令对应修改AVAudioSeesionCategory。例如,若修改指令为将AVAudioSessionCategoryPlayAndRecord修改为AVAudioSessionCategoryPlayback,则将AVAudioSessionCategory行为设置为AVAudioSessionCategoryPlayback。
相关代码如下所示:
由此,通过全局监听,可以保证在连麦过程中,其他播放需求不会变更当前AVAudioSession的设置,媒体音量会被当做通话音量从而不会被抑制,使得连麦聊天且观看视频的双方用户,对方观看视频的声音不会被采集并传输给当前用户,且观看的视频会保持现有音量,不会被抑制,提高了用户的体验感。
为了使本申请实施例提供的技术方案更加清楚,下面以一个实例对本申请实施例提供的视频播放方法进行说明。本申请实施例提供的视频播放方法应用在视频播放设备中,视频播放设备包括AVAudioSession hook模块、RTC模块和播放器audioUnit模块,下面分别进行说明。
首先对AVAudioSession hook模块进行说明。
AVAudioSession hook模块通常会收到三种修改Category的消息,分别为:启动RTC的启动指令、退出RTC的退出指令、视频应用内部其他动作指令。其中,启动RTC的启动指令和退出RTC的退出指令在RTC模块会进行相应的处理动作,后续会说明,在此不再赘述。
AVAudioSession hook模块收到修改Category的消息,会根据连麦状态来确定修改逻辑。具体地,若连麦失败,则允许修改Category为对应的AVAudioSessionCategory。若连麦成功,则只允许修改Category为AVAudioSessionCategoryPlayAndRecord,其他一概不生效。
然后对RTC模块进行说明。RTC模块主要对连麦状态进行监测,会调用常规的RTCSDK如七牛云连麦SDK的API。
当RTC模块接收到启动RTC的启动指令,RTC模块会调用RTC SDK启动流程,RTC SDK会把连麦状态通过消息的方式会通知到RTC管理模块。若RTC管理模块收到进入连麦的通知时,将连麦状态设置为连麦成功,并且将AVAudioSessionCategory设置为AVAudioSessionCategoryPlayAndRecord,此时AVAudioSession hook模块会收到相应的修改Category消息并做如上的对应处理,同时会将连麦状态改变的消息发送给播放器AudioUnit模块进行处理,后续会说明,在此不再赘述。
若RTC管理模块收到退出连麦的通知时,将连麦状态设置为连麦失败,并且将AVAudioSessionCategory设置为AVAudioSessionCategoryPlayBack,此时AVAudioSessionhook模块会收到相应的修改Category消息并做如上的对应处理,同时会将连麦状态改变的消息发送给播放器AudioUnit模块进行处理,后续会说明,在此不再赘述。
最后对播放器AudioUnit模块进行说明。
播放器AudioUnit模块是媒体播放器的音频渲染处理模块,对播放器播放过程中的连麦状态进行监听,音频渲染驱动用AudioUnit,当连麦状态发生变化,音频渲染模块会做对应的处理动作。
具体地,若收到进入连麦的消息时进行连麦播放处理,收到非连麦消息即退出连麦时进行媒体播放处理。若连麦播放处理为音频渲染模块重新初始化设置AudioComponentDescription核心参数componentSubType为kAudioUnitSubType_VoiceProcessingIO。若媒体播放处理为音频渲染模块重新初始化设置AudioComponentDescription核心参数componentSubType为kAudioUnitSubType_RemoteIO。
本申请实施例除了提供的终端视频播放方法外,还提供了终端视频播放装置,如图2所示,包括:接收单元201、调用单元202和设置单元203;
所述接收单元201,用于接收启动实时音视频通信RTC的启动指令;
所述调用单元202,用于根据所述启动指令调用RTC软件开发工具包SDK进行连麦;
所述设置单元203,用于若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord;
所述接收单元201,还用于若在连麦成功的条件下接收媒体播放请求;
所述设置单元203,还用于根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
作为一种可能的实现方式,所述装置还包括:监控单元,用于启动全局监控;
所述设置单元203,还用于:
所述若在连麦成功的条件下接收修改所述AVAudioSeesionCategory的修改指令,拒绝所述修改指令;
若在连麦不成功的条件接收修改所述AVAudioSeesionCategory的修改指令,根据所述修改指令对应修改所述AVAudioSeesionCategory。
作为一种可能的实现方式,通过钩子hook方式启动全局监控。
作为一种可能的实现方式,所述接收单元201,还用于:
若不在连麦成功的条件下接收媒体播放请求;
所述设置单元203,还用于:
根据所述媒体播放请求将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
作为一种可能的实现方式,所述接收单元201,还用于:
接收退出所述RTC的退出指令;
所述设置单元203,还用于:
根据所述退出指令,设置所述AVAudioSeesionCategory为AVAudioSeesionCategoryPlayBack,并将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
本申请实施例提供的视频播放装置,根据启动RTC的启动指令调用RTC SDK进行连麦,如果连麦成功,设置AVAudioSeesionCategory为AVAudioSeesionCategoryPlayAndRecord,进一步,如果在连麦成功后,又接收到媒体播放请求,即同时需要语音通话和视频播放的场景,根据媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。由此,在同时需要语音通话和视频播放的场景下,不再使用iOS移动操作系统中默认的Audio Queue进行音视频采集,而是使用AudioUnit,并将AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO,通过改变视频播放器的音频渲染逻辑,iOS移动操作系统会将媒体音量当做通话音量,从而不会被回音消除出现被抑制甚至是听不到,避免了视频播放的媒体音量被抑制的问题,提高了用户的体验感。
本申请实施例还提供了一种计算机设备,参见图3,该图示出了本申请实施例提供的一种计算机设备的结构图,如图3所示,所述设备包括处理器310以及存储器320:
所述存储器310用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器320用于根据所述程序代码中的指令执行上述实施例提供的任一种接口调用方法。
本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序于执行上述实施例提供的任一种接口调用方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方面的各种可选实现方式中提供的视频播放方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元及模块可以是或者也可以不是物理上分开的。另外,还可以根据实际的需要选择其中的部分或者全部单元和模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种终端视频播放方法,其特征在于,所述方法包括:
接收启动实时音视频通信RTC的启动指令;
根据所述启动指令调用RTC软件开发工具包SDK进行连麦;
若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord;
若在连麦成功的条件下接收媒体播放请求或检测到当前正在媒体播放,根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
启动全局监控;
若在连麦成功的条件下接收修改所述AVAudioSeesionCategory的修改指令,拒绝所述修改指令;
若在连麦不成功的条件接收修改所述AVAudioSeesionCategory的修改指令,根据所述修改指令对应修改所述AVAudioSeesionCategory。
3.根据权利要求2所述的方法,其特征在于,所述启动全局监控,包括;
通过钩子hook方式启动全局监控。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法还包括:
若不在连麦成功的条件下接收媒体播放请求,根据所述媒体播放请求将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO之后,还包括:
接收退出所述RTC的退出指令;
根据所述退出指令,设置所述AVAudioSeesionCategory为AVAudioSeesionCategoryPlayBack,并将所述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_RemoteIO。
6.一种终端视频播放装置,其特征在于,所述装置包括:接收单元、调用单元和设置单元;
所述接收单元,用于接收启动实时音视频通信RTC的启动指令;
所述调用单元,用于根据所述启动指令调用RTC软件开发工具包SDK进行连麦;
所述设置单元,用于若连麦成功,设置音频会话类别AVAudioSeesionCategory为允许音频输入和输出AVAudioSeesionCategoryPlayAndRecord;
所述接收单元,还用于若在连麦成功的条件下接收媒体播放请求;
所述设置单元,还用于根据所述媒体播放请求将播放器的音频渲染驱动设置为AudioUnit,并将组件属性描述AudioComponentDescription的参数componentSubType设置为kAudioUnitSubType_VoiceProcessingIO。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:监控单元,用于启动全局监控;
所述设置单元,还用于:
所述若在连麦成功的条件下接收修改所述AVAudioSeesionCategory的修改指令,拒绝所述修改指令;
若在连麦不成功的条件接收修改所述AVAudioSeesionCategory的修改指令,根据所述修改指令对应修改所述AVAudioSeesionCategory。
8.一种用于视频播放的设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-5任意一项所述的方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-5任意一项所述的方法。
10.一种计算机程序产品,其特征在于,包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行权利要求1-5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320312.7A CN114025230A (zh) | 2021-11-09 | 2021-11-09 | 一种终端视频播放方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111320312.7A CN114025230A (zh) | 2021-11-09 | 2021-11-09 | 一种终端视频播放方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114025230A true CN114025230A (zh) | 2022-02-08 |
Family
ID=80063135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111320312.7A Pending CN114025230A (zh) | 2021-11-09 | 2021-11-09 | 一种终端视频播放方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114025230A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354470A (zh) * | 2023-12-05 | 2024-01-05 | 深圳感臻智能股份有限公司 | 一种多类型监控视频的调度播放方法、系统及应用 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186911A1 (en) * | 2003-03-20 | 2004-09-23 | Microsoft Corporation | Access to audio output via capture service |
CN106027756A (zh) * | 2016-04-29 | 2016-10-12 | 努比亚技术有限公司 | 一种音量管理的装置和方法 |
CN108235052A (zh) * | 2018-01-09 | 2018-06-29 | 安徽小马创意科技股份有限公司 | 基于ios可选择多音频通道硬件混音、采集及播放的方法 |
CN111263223A (zh) * | 2020-02-18 | 2020-06-09 | 聚好看科技股份有限公司 | 一种媒体音量调节方法及显示设备 |
CN112073797A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种音量调节方法及显示设备 |
CN112751971A (zh) * | 2020-12-30 | 2021-05-04 | 维沃移动通信有限公司 | 语音播放方法、装置及电子设备 |
-
2021
- 2021-11-09 CN CN202111320312.7A patent/CN114025230A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040186911A1 (en) * | 2003-03-20 | 2004-09-23 | Microsoft Corporation | Access to audio output via capture service |
CN106027756A (zh) * | 2016-04-29 | 2016-10-12 | 努比亚技术有限公司 | 一种音量管理的装置和方法 |
CN108235052A (zh) * | 2018-01-09 | 2018-06-29 | 安徽小马创意科技股份有限公司 | 基于ios可选择多音频通道硬件混音、采集及播放的方法 |
CN112073797A (zh) * | 2019-06-10 | 2020-12-11 | 海信视像科技股份有限公司 | 一种音量调节方法及显示设备 |
CN111263223A (zh) * | 2020-02-18 | 2020-06-09 | 聚好看科技股份有限公司 | 一种媒体音量调节方法及显示设备 |
CN112751971A (zh) * | 2020-12-30 | 2021-05-04 | 维沃移动通信有限公司 | 语音播放方法、装置及电子设备 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117354470A (zh) * | 2023-12-05 | 2024-01-05 | 深圳感臻智能股份有限公司 | 一种多类型监控视频的调度播放方法、系统及应用 |
CN117354470B (zh) * | 2023-12-05 | 2024-05-07 | 深圳感臻智能股份有限公司 | 一种多类型监控视频的调度播放方法、系统及应用 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2452487B1 (en) | Controlling multi-party communications | |
CN101534412A (zh) | 实现可视电话会议与会通知的方法及装置 | |
CN109712631B (zh) | 音频数据传输控制方法、装置、系统及可读存储介质 | |
CN113114688B (zh) | 多媒体会议管理方法及装置、存储介质、电子设备 | |
US8774388B2 (en) | Telephone terminal, telephone communication system, and telephone terminal configuration program | |
US10686873B2 (en) | Seamless transition of a video session between a mesh topology and a centralized bridge topology | |
CN102055683A (zh) | 一种分享音乐数据的方法、装置和系统 | |
CN105260159A (zh) | 一种音频播放方法和装置 | |
CN115686424A (zh) | 针对音频播放的优先级配置方法、装置、设备及存储介质 | |
US7668907B1 (en) | Method and system for selectively viewing participants of a multimedia network conference | |
CN114025230A (zh) | 一种终端视频播放方法和相关装置 | |
CN115767649A (zh) | 即时通讯方法、装置、电子设备及存储介质 | |
CN108513159A (zh) | 多终端同步播放控制方法、主设备、装置及系统 | |
KR20210064222A (ko) | 비디오 품질을 유지하면서 비디오 비트 레이트를 향상시키는 기법 | |
WO2023169066A1 (zh) | 监控回放控制方法、装置、存储介质及电子设备 | |
CN115314494A (zh) | 一种多设备协同工作方法和装置 | |
CA3213247A1 (en) | Method and system for integrating video content in a video conference session | |
CN114095688A (zh) | 一种实现全域广播会议的方法和系统 | |
CN112564926A (zh) | 一种网络会议的处理方法及系统 | |
EP3220635B1 (en) | Seamless transition of a video session between a mesh topology and a centralized bridge topology | |
CN105450877B (zh) | 录音的方法及装置 | |
CN104869549A (zh) | 通信转移方法、通信方法、通信终端及通信系统 | |
CN113129915B (zh) | 音频共享方法、装置、设备、存储介质及程序产品 | |
US11632404B2 (en) | Data stream prioritization for communication session | |
US11601478B2 (en) | Media server management for communication session |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |