CN113874850A - 跨多个设备的音频的同步 - Google Patents
跨多个设备的音频的同步 Download PDFInfo
- Publication number
- CN113874850A CN113874850A CN202080038824.1A CN202080038824A CN113874850A CN 113874850 A CN113874850 A CN 113874850A CN 202080038824 A CN202080038824 A CN 202080038824A CN 113874850 A CN113874850 A CN 113874850A
- Authority
- CN
- China
- Prior art keywords
- display devices
- audio data
- display device
- frame number
- audio
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 35
- 230000005540 biological transmission Effects 0.000 claims abstract description 15
- 230000004044 response Effects 0.000 claims description 15
- 238000009877 rendering Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 claims description 4
- 230000001360 synchronised effect Effects 0.000 description 8
- 238000012546 transfer Methods 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008713 feedback mechanism Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4295—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using an embedded synchronisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/162—Interface to dedicated audio devices, e.g. audio drivers, interface to CODECs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0042—Universal serial bus [USB]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- General Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Information Transfer Systems (AREA)
Abstract
用于在与计算机设备通信的多个显示设备之间同步音频的方法和设备可以包括使用来自音频流的音频数据确定多个音频数据子集以经由通用串行总线(USB)连接传输到与计算机设备通信的多个显示设备。该方法和设备可以包括从多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号。该方法和设备可以包括通过向当前帧号添加常数来确定已更新帧号;以及生成多个USB请求块,该多个USB请求块含有已更新帧号和具有多个音频数据子集的分组。该方法和设备可以包括向多个显示设备中的对应显示设备发送USB请求块。
Description
背景技术
本公开涉及与计算机设备通信的多个设备。
当您在一个房间中连接多个设备以进行会议时,每个设备可以用于发出音频。每个音频单元设备的运行速度可能比其他设备快一点或慢一点。该速度特性可能会影响音频,这是因为当通过设备播放音频时,音频可能无法在预期时间播放,从而造成失真。这样,,音频体验对于在会议期间与设备交互的个人而言可能是不愉快的。
因此,本领域需要在同步多个独立USB音频设备时进行改进。
发明内容
以下呈现本公开的一个或多个实施方式的简化概述,以便提供对这样的实施方式的基本理解。该概述不是所有预期实施方式的广泛概述,并且既不旨在标识所有实施方式的关键或基本元素,也不旨在划定任何或所有实施方式的范围。其唯一目的是以简化的形式呈现本公开的一个或多个实施方式的一些概念,作为稍后呈现的更详细描述的序言。
一个示例实施方式涉及一种计算机设备。该计算机设备可以包括用于存储数据和指令的存储器、被配置为与存储器通信的至少一个处理器、以及被配置为与存储器和处理器通信的操作系统,其中该操作系统可操作以:使用来自音频流的音频数据确定多个音频数据子集,以经由通用串行总线(USB)连接传输到与计算机设备通信的多个显示设备;从多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号;通过向当前帧号添加常数来确定已更新帧号;生成多个USB请求块,其中多个USB请求块中的每个USB请求块包括已更新帧号和具有多个音频数据子集中的一个音频数据子集的分组;以及向多个显示设备中的对应显示设备发送多个USB请求块中的每个USB请求块。
另一示例实施方式涉及一种用于在与计算机设备通信的多个显示设备之间同步音频数据的方法。该方法可以包括:在计算机设备上执行的操作系统处,使用来自音频流的音频数据确定多个音频数据子集,以经由通用串行总线(USB)连接传输到与计算机设备通信的多个显示设备。该方法可以包括从多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号。该方法可以包括通过向当前帧号添加常数来确定已更新帧号。该方法可以包括生成多个USB请求块,其中多个USB请求块中的每个USB请求块包括已更新帧号和具有多个音频数据子集中的一个音频数据子集的分组。该方法可以包括向多个显示设备中的对应显示设备发送多个USB请求块中的每个USB请求块。
另一示例实施方式涉及一种存储由计算机设备可执行的指令的计算机可读介质。该计算机可读介质可以包括用于使计算机设备根据来自音频流的音频数据确定多个音频数据子集以经由通用串行总线(USB)连接传输到与计算机设备通信的多个显示设备的至少一个指令。该计算机可读介质可以包括用于使计算机设备从多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号的至少一个指令。该计算机可读介质可以包括用于使计算机设备通过向当前帧号添加常数来确定已更新帧号的至少一个指令。该计算机可读介质可以包括用于使计算机设备生成多个USB请求块的至少一个指令,其中多个USB请求块中的每个USB请求块包括已更新帧号和具有多个音频数据子集中的一个音频数据子集的分组。该计算机可读介质可以包括用于使计算机设备向多个显示设备中的对应显示设备发送多个USB请求块中的每个USB请求块的至少一个指令。
与本公开的实施方式有关的其他优点和新颖特征将部分地在以下描述中阐述,并且部分地将在检查以下内容或通过实践学习之后对本领域技术人员变得更加清楚明白。
附图说明
在附图中:
图1是根据本公开的实施方式的与多个显示设备通信的示例计算机设备的示意性框图;
图2是根据本公开的实施方式的音频缓冲器的示例;
图3是根据本公开的实施方式的向多个显示设备发送多个通用串行总线(USB)请求块的示例;
图4是根据本公开的实施方式的用于跨多个显示设备同步音频的方法的示例;以及
图5是根据本公开的实施方式的示例设备的示意性框图。
具体实施方式
本公开涉及用于在与计算机设备通信的多个显示设备之间同步音频的设备和方法。显示设备和计算机设备连接到同一通用串行总线(USB),从而使音频数据的一个公共数据流可以被划分成针对每个显示设备的多个音频数据子集。可以使用起始帧号将多个音频数据子集从计算机设备提供给所有显示设备,从而使所有显示设备同时开始输出音频数据子集。音频数据的传输也可以在没有起始帧号的情况下发生。当起始帧号丢失时,显示设备可以尽快输出音频数据,这可能导致音频数据的接收在设备之间不同步。在将音频数据从计算机设备传输到显示设备时,该方法和设备可以指定定时指示符,诸如帧号。例如,在一些实施方式中,可以在发送到显示设备的USB请求块(URB)中指定帧号。通过设置帧号,音频数据的输出在与帧号匹配的时间开始,这允许跨所有显示设备同步音频数据。当同步音频数据时,显示设备可以使用相同USB时钟作为每个显示设备的音频数据时钟的源。
显示设备可以具有至少一个显示器和对应的音频输入和/或音频输出。显示设备可以是能够呈现信息、捕获音频和/或发出音频的任何类型的显示器、监视器、视觉呈现设备、计算机设备和/或物理面板。每个显示设备可以包括用于捕获音频或发出音频的任何数目的通道(例如,扬声器)。显示设备的每个扬声器可以对应于任何数目的通道。例如,扬声器和/或麦克风可以是具有左通道和右通道的双通道立体声。
该设备和方法可以包括音频聚合器驱动器,该音频聚合器驱动器可以从在计算机设备上执行的一个或多个应用接收音频数据。音频聚合器驱动器可以使用所接收的多个音频数据生成音频流,并且可以将音频流存储在音频缓冲器中。可以通过将与计算机设备通信的显示设备的总数乘以每个显示设备所支持的音频通道的数目来确定音频缓冲器的大小。此外,可以对多个显示设备应用排序,该排序定义了显示设备与计算机设备连接和/或通信的顺序。可以使用排序将音频数据放置在音频流中。
在实施方式中,该设备和方法可以使用两层驱动器,诸如在计算机设备上的音频聚合器驱动器和在计算机设备上的多个单元驱动器。每个单元驱动器可以与多个显示设备中的一个显示设备相关联,从而使每个显示设备可以通过单元驱动器在计算机设备上被表示。此外,每个单元驱动器可以与显示设备渲染缓冲器通信,该显示设备渲染缓冲器可以接收音频数据,以经由显示设备上的扬声器来输出。单元驱动器可以将音频数据传输到显示设备。
音频聚合器驱动器可以包括同步管理器,该同步管理器可以同步音频数据到显示设备的传输。同步管理器可以包括可以用于针对计算机设备上的单元驱动器设置定时的时钟或其他定时机制。例如,时钟可以是USB时钟。该定时可以用于同步到显示设备的传输。同步管理器可以从与第一显示设备相关联的第一单元驱动器接收显示设备渲染缓冲器的当前帧号。例如,同步管理器可以从与第一显示设备相关联的单元驱动器接收当前帧号。当前帧号可以对应于时钟的定时。对于高速和超高速显示设备,数据传输速率可以是微帧。微帧的长度为125微秒,并且八个连续微帧构成一个高速或超高速帧。这样,一个帧的长度可以是1毫秒。
同步管理器可以确定常数,该常数说明在执行设备初始化以将所有显示设备移动到能够接收音频数据以经由显示设备上的扬声器来输出的运行状态时的延迟。同步管理器可以通过向当前帧号添加常数来计算已更新帧号。已更新帧号可以是指定的定时指示符,该定时指示符可以确保音频数据被同时提供和/或传输到每个显示设备。音频聚合器驱动器可以根据音频流生成一个或多个音频数据子集以传输到每个显示设备。音频聚合器驱动器可以向每个单元驱动器发送音频数据子集以及已更新帧号以传输到显示设备。
每个单元驱动器可以生成USB请求块,该USB请求块包括已更新帧号和具有相应显示设备的音频数据子集的一个或多个分组。USB栈可以从每个单元驱动器接收USB请求块并且可以将USB请求块发送到相应显示设备。单元驱动器可以确保显示设备渲染缓冲器在已更新帧号处开始输出来自USB请求块的音频数据子集。在任何给定点每个显示设备渲染缓冲器上的已更新帧号可以相同,从而满足所有显示设备之间的同步可以在微帧内发生的期望。
通过设置在未来传输音频数据的时间以允许有足够的时间将显示设备初始化为运行状态,可以保证USB总线在完全相同的时间将音频数据传送到所有显示设备。这样,从显示设备的扬声器发出的音频可以被同步。
现在参考图1,示出了用于与跨经由USB连接与计算机设备102通信的多个显示设备106、108、110、112的同步音频一起使用的系统100。显示设备106、108、110、112和计算机设备102可以连接到同一通用串行总线(USB)。这样,计算机设备102可以充当所有显示设备106、108、110、112的USB主机控制器,并且可以将一个公共USB时钟从计算机设备102提供给所有显示设备106、108、110、112,从而使所有显示设备106、108、110、112可以使用同一USB时钟作为音频数据时钟的源。
多个显示设备106、108、110、112可以是能够呈现信息、捕获音频和/或发出音频的任何类型的显示器、监视器、视觉呈现设备、计算机设备和/或物理面板。此外,每个显示设备106、108、110、112可以包括任何数目的用于捕获音频和/或发出音频的通道。例如,显示设备106可以包括支持两个通道(例如,右和左)的扬声器40。显示设备108可以包括支持两个通道(例如,右和左)的扬声器44。显示设备110可以包括支持两个通道(例如,右和左)的扬声器48。显示设备112可以包括支持两个通道(例如,右和左)的扬声器52。显示设备106、108、110、112的每个扬声器40、44、48、52可以对应于任何数目的通道。显示设备106、108、110、112可以是非计算设备、计算设备或非计算设备和计算设备的组合。
多个显示设备106、108、110、112中的每个显示设备可以在具有对应单元驱动器15、17、19、21的计算机设备102上表示。例如,单元驱动器15可以与显示设备106相关联,单元驱动器17可以与显示设备108相关联,单元驱动器19可以与显示设备110相关联,并且单元驱动器21可以与显示设备112相关联。单元驱动器15、17、19、21可以与显示设备106、108、110、112的扬声器40、44、48、52通信。
此外,每个显示设备106、108、110、112可以包括用于捕获和/或输出音频的每音频设备实体的音频缓冲器。例如,多个显示设备106、108、110、112可以包括可以接收音频数据12或音频数据子集37、39、41、43以经由扬声器40、44、48、52来输出的个体显示设备渲染缓冲器32、34、36、38。单元驱动器15、17、19、21可以与显示设备渲染缓冲器32、34、36、38通信,并且对于对应的显示设备渲染缓冲器32、34、36、38,可以接收通道特定音频数据12、或频数据子集37、39、41、43。
在将音频数据12或音频数据子集37、39、41、43从计算机设备102传输到显示设备渲染缓冲器32、34时,可以使用定时指示符,诸如已更新帧号24、36、38。通过在未来的某个时间设置已更新帧号24,音频数据12或音频数据子集37、39、41、43的输出在与已更新帧号24匹配的时间开始,这允许跨所有显示设备106、108、110、112同步音频数据12或音频数据子集37、39、41、43,从而使可以同时经由扬声器40、44、48、52输出音频。
计算机设备102可以包括可以连接到网络的任何移动或固定计算机设备。例如,计算机设备102可以是诸如台式计算机或膝上型计算机或平板计算机等计算机设备、物联网(IOT)设备、蜂窝电话、游戏设备、混合现实或虚拟现实设备、音乐设备、电视、导航系统、相机、个人数字助理(PDA)或手持设备、或者具有与一个或多个其他设备的有线和/或无线连接能力的任何其他计算机设备。
计算机设备102可以包括可以由处理器48和/或存储器50执行的操作系统111。计算机设备102的存储器50可以被配置用于存储定义和/或关联于操作系统111的数据和/或计算机可执行指令,并且处理器48可以执行这样的数据和/或指令以实例化操作系统111。存储器50的示例可以包括但不限于可以由计算机使用的存储器类型,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器和其任何组合。处理器48的示例可以包括但不限于如本文所述专门编程的任何处理器,包括控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、片上系统(SoC)、或其他可编程逻辑或状态机。
操作系统111可以包括可以从在计算机设备102上执行的一个或多个应用10接收音频数据12的音频聚合器驱动器14。音频聚合器驱动器14可以使用所接收的多个音频数据12生成音频流13并且可以将音频流13存储在音频缓冲器26中。音频聚合器驱动器14、16可以确定音频缓冲器26的缓冲器大小25。可以通过将显示设备106、108、110、112的总数乘以显示设备106、108、110、112中的每个显示设备所支持的通道的数目来计算缓冲器大小25。在所示示例中,显示设备106、108、110、112每个可以支持两个通道(例如,扬声器40、44、48、52可以支持左右两个通道)。这样,缓冲器大小25可以是八(例如,四个设备乘以两个通道)。
排序可以被应用于显示设备106、108、110、112。排序可以具有基于显示设备106、108、110、112与计算机设备102连接和/或通信的顺序的值的布置(或相对位置)。例如,显示设备106可以是第一显示设备,显示设备108可以是第二显示设备,显示设备110可以是第三显示设备,并且显示设备112可以是第四显示设备。可以使用排序将音频数据12放置在音频流13中。
音频聚合器驱动器14可以将来自音频流13的音频数据12分成多个音频数据子集37、39、41、43。可以响应于与计算机设备102通信的显示设备106、108、110、112的总数来确定多个音频数据子集37、39、41、43。在所示示例中,四个显示设备与计算机设备102通信。这样,音频聚合驱动器14可以将来自音频流13的音频数据12拆分为四个音频数据子集37、39、41、43,从而使每个显示设备106、108、110、112可以接收音频数据子集37、39、41、43中的一个音频数据子集。音频聚合器驱动器14可以将音频数据子集37、39、41、43发送到相应单元驱动器15、17、19、21。
音频聚合器驱动器14可以包括可以使音频数据12到显示设备106、108、110、112的传输同步的同步管理器16。同步管理器16可以接收标识与计算机设备102通信的显示设备106、108、110、112的数目的信息、连同显示设备106、108、110、112的排序。
同步管理器16可以包括可以用于针对计算机设备102上的单元驱动器15、17、19、21设置定时的时钟11或其他定时机制。例如,时钟11可以是USB时钟,并且显示设备106、108、110、112可以使用时钟11作为每个显示设备106、108、110、112的音频数据时钟的源。显示设备渲染缓冲器32、34、36、38的帧号可以与时钟11的定时相关。这样,时钟11的定时可以用于同步显示设备106、108、110、112上的音频数据子集37、39、41、43输出,因此音频数据输出同时开始。
同步管理器16可以从与第一显示设备(例如,显示设备106)相关联的单元驱动器15接收显示设备渲染缓冲器32的当前帧号18。当前帧号18可以是来自显示设备106的显示设备渲染缓冲器32的当前帧号。当前帧号18可以与时钟11的定时有关。对于高速和超高速显示设备,数据传输速率可以是微帧。微帧的长度为125微秒,并且八个连续微帧构成一个高速或超高速帧。这样,一个帧的长度可以是1毫秒。
同步管理器16可以确定常数22,该常数22说明在执行设备初始化20以将所有显示设备106、108、110、112移动到能够接收音频数据12以经由显示设备106、108、110上的扬声器40、44、48、52来输出的运行状态时的延迟。设备初始化20可以包括指示单元驱动器15、17、19、21准备显示设备渲染缓冲器32、34、36、38。常数22的值可以提供足够的时间来将所有显示设备106、108、110、112初始化为能够接收音频数据12的运行状态。例如,常数22可以是八,这可以允许八毫秒来将所有显示器设备106、108、110、112移动到运行状态并且开始流传输音频数据12。常数22可以随着移动显示设备106、108、110、112的时间增加或减少而被修改。此外,常数22可以随着显示设备106、108、110、112的数目增加和/或减少而增加和/或减少。这样,常数22可以响应于系统的变化、主系统速度的变化和/或其他考虑因素而改变。
同步管理器16可以通过将常数22添加到当前帧号18来计算已更新帧号24。已更新帧号24可以是指定的定时指示符,该定时指示符可以确保在显示设备106、108、110、112中的每个显示设备上输出的音频数据子集37、39、41、43同时开始。例如,当时钟11的定时与已更新帧号24匹配时,显示设备106、108、110、112可以开始输出音频数据子集37、39、41、43。
音频聚合器驱动器可以将已更新帧号24和音频数据子集37、39、41、43发送到单元驱动器15、17、19、21以传输到显示设备106、108、110、112。每个单元驱动器15、17、19、21可以针对相应显示设备106、108、110、112生成一个或多个USB请求块30、31、33、35。USB请求块30、31、33、35可以包括已更新帧号24和音频数据子集37、39、41、43的一个或多个分组23、25、27、29(图3)。通过在传输USB请求块30、31、33、35时设置已更新帧号24,显示设备渲染缓冲器32、34、369、38可以接收音频数据子集37、39、41、43并且可以等待以直到时钟11的定时与已更新帧号24匹配时开始输出音频数据子集37、39、41、43。这样,跨所有显示设备106、108、110、112同步音频数据子集37、39、41、43的输出可以通过设置在未来使用已更新帧号24开始输出音频数据子集37、39、41、43的时间来发生。
USB堆栈28可以从单元驱动器15、17、19、21接收(多个)USB请求块30、31、33、35,并且可以将USB请求块30、31、33、35发送到显示设备106、108、110、112。
这样,显示设备渲染缓冲器32、34、36、38可以从具有已更新帧号24的USB请求块30、31、33、35接收相应音频数据子集37、39、41、43。当时钟11的定时与已更新帧号24匹配时,显示设备106、108、110、112可以开始经由扬声器40、44、48、52输出音频数据子集37、39、41、43。在任何给定点每个显示设备渲染缓冲器32、34、36、38上的帧号24可以相同,从而满足所有显示设备106、108、110、112之间的同步可以在微帧内发生的期望。当USB请求块30、31、33、35从USB堆栈28被传输时,已更新帧号24可以由同步管理器16保持最新。
通过设置在未来开始输出音频数据子集37、39、41、43的时间以允许有足够的时间将音频数据子集37、39、41、43复制到显示设备渲染缓冲器32、34、36、38中,可以保证USB总线在完全相同的时间将音频数据子集37、39、41、43传送到所有显示设备106、108、110、112。这样,从显示设备106、108、110、112的扬声器40、44、48、52发出的音频可以被同步。
现在参考图2,示例音频缓冲器26可以包括具有从一个或多个应用10(图1)接收的音频数据12的音频流13。音频缓冲器26可以包括与所接收的音频数据12的不同时间/序列相对应的音频流13。
音频聚合器驱动器14可以将音频缓冲器26划分成与缓冲器大小25(图1)相对应的数目的部分。例如,当缓冲器大小25等于八时,音频缓冲器26可以被划分成八个部分,其中每个个体部分可以对应于显示设备106、108、110、112所支持的单个通道。这样,音频缓冲器26可以包括音频数据12的八个部分的阵列(在每个时间/序列)。
该数目的部分的子集可以响应于显示设备106、108、110、112所支持的通道的数目被分配给特定显示设备渲染缓冲器32、34、36、38。例如,每个显示设备106、108、110、112可以在音频缓冲器26中接收两个部分的子集,因为在所示示例中显示设备106、108、110、112支持两个通道。可以生成与相应显示设备渲染缓冲器32、34、36、38的音频缓冲器26的部分相对应的多个音频数据子集37、39、41、43。
排序可以被应用于该数目的部分,从而使每个部分可以对应于特定显示设备渲染缓冲器32、34、36、38。排序可以具有基于显示设备106、108、110、112与计算机设备102连接和/或通信的顺序的值的布置(或相对位置)。例如,显示设备106可以是第一显示设备并且音频缓冲器26的前两个部分可以被分配给显示设备渲染缓冲器32。这样,显示设备渲染缓冲器32可以从音频缓冲器26的前两个部分接收音频数据子集37。
显示设备108可以是第二显示设备,并且音频缓冲器26的接下来的两个部分可以对应于显示设备呈现缓冲器24。显示设备呈现缓冲器34可以从音频缓冲器26的接下来的两个部分接收音频数据子集39。显示设备110可以是第三显示设备,并且音频缓冲器26的接下来的两个部分可以与显示设备呈现缓冲器36相关联。这样,显示设备呈现缓冲器36可以从音频缓冲器26的接下来的两个部分接收音频数据子集41。显示设备112可以是第四显示设备,并且音频缓冲器26的最后两个部分可以对应于显示设备渲染缓冲器38。显示设备渲染缓冲器38可以从音频缓冲器26的最后两个部分接收音频数据子集43。
现在参考图3,示出了向多个显示设备106、108、110、112发送USB请求块30、31、33、35的示例。每个单元驱动器15、17、19、21可以生成具有已更新帧号24和音频数据的分组23、25、27、29的USB请求块30、31、33、35以传输到相应显示设备106、108、110、112。
例如,单元驱动器15可以向显示设备106的显示设备渲染缓冲器32发送USB请求块30,USB请求块30包括已更新帧号24和具有显示设备106的音频数据子集37的一个或多个分组23。显示设备渲染缓冲器32可以接收具有音频数据子集37的分组23,并且可以在已更新帧号24处经由扬声器40开始输出音频数据子集37。另外,单元驱动器17可以向显示设备渲染缓冲器34发送USB请求块31,USB请求块31包括已更新帧号24和具有显示设备108的音频数据子集39的一个或多个分组25。显示设备渲染缓冲器34可以接收具有音频数据子集39的分组25,并且可以在已更新帧号24处开始使用扬声器44输出音频数据子集39。
单元驱动器19可以向显示设备渲染缓冲器36发送USB请求块33,USB请求块33包括已更新帧号24和具有显示设备110的音频数据子集41的一个或多个分组27。显示设备渲染缓冲器36可以接收具有音频数据子集41的分组27,并且可以在已更新帧号24处开始经由扬声器48输出音频数据子集41。单元驱动器21可以向显示设备渲染缓冲器38发送USB请求块35,USB请求块35包括已更新帧号24和具有显示设备112的音频数据子集43的一个或多个分组29。显示设备渲染缓冲器38可以接收具有音频数据子集43的分组29,并且可以在已更新帧号处开始使用扬声器52输出音频数据子集43。
音频数据子集37、39、41、43可以包括相同的音频数据12。这样,显示设备106、108、110、112可以输出相同的音频数据12。此外,音频数据子集37、39、41、43可以包括不同的音频数据12,从而使每个显示设备106、108、110、112可以输出不同的音频数据12。当一个或多个显示设备106、108、110、112可能不需要输出音频时(例如,当应用位于不同显示设备上时),音频数据子集37、39、41、43也可以包括静音。
通过将已更新帧号24与分组23、25、27、29以及音频数据子集37、39、41、43发送到显示设备渲染缓冲器32、34、36、38,输出音频数据子集37、39、41、43可以在与已更新帧号24匹配的时间开始,这允许跨所有显示设备106、108、110、112同步音频数据子集37、39、41、43。这样,从显示设备106、108、110、112的扬声器40、44、48、52发出的音频可以被同步。
现在参考图4,计算机设备102(图1)可以使用示例方法400来跨与计算机设备102通信的多个显示设备106、108、110、112(图1)同步音频数据12(图1)。下面可以参考图1的架构讨论方法400的动作。
在402,方法400可以包括根据音频数据的音频流确定多个音频数据子集以传输到经由USB连接与计算机设备通信的多个显示设备。音频聚合器驱动器14可以从在计算机设备102上执行的一个或多个应用10接收音频数据12。音频聚合器驱动器14可以使用所接收的多个音频数据12生成音频流13并且可以将音频流13存储在音频缓冲器26中。
音频聚合器驱动器14可以确定音频缓冲器26的缓冲器大小25。可以通过将显示设备106、108、110、112的总数乘以显示设备106、108、110、112中的每个显示设备所支持的通道的数目来计算缓冲器大小25。在所示示例中,显示设备106、108、110、112每个可以支持两个通道(例如,扬声器40、44、48、52可以支持左右两个通道)。这样,缓冲器大小25可以是八(例如,四个设备乘以两个通道)。音频缓冲器26还可以包括与所接收的音频数据12的不同时间/序列相对应的多个音频流13,从而使音频流13可以包括音频数据12的八个部分的阵列(在音频流13的每个时间/序列)。
音频聚合器驱动器14可以将音频流13划分成与缓冲器大小25相对应的数目的部分。例如,当缓冲器大小25等于八时,音频流13可以被划分成八个部分,其中每个个体部分可以对应于显示设备106、108、110、112所支持的单个通道。该数目的部分的子集可以响应于显示设备106、108、110、112所支持的通道的数目被分配给特定显示设备渲染缓冲器32、34、36、38。例如,每个显示设备106、108、110、112可以在音频流13中接收两个部分的子集,因为在所示示例中显示设备106、108、110、112支持两个通道。
音频聚合器驱动器14可以将来自音频流13的音频数据12分成多个音频数据子集37、39、41、43。可以响应于与计算机设备102通信的显示设备106、108、110、112的总数来确定多个音频数据子集37、39、41、43。在所示示例中,四个显示设备与计算机设备102通信。这样,音频聚合驱动器14可以将来自音频流13的音频数据12拆分为四个音频数据子集37、39、41、43,从而使每个显示设备106、108、110、112可以接收音频数据子集37、39、41、43中的一个音频数据子集。
可以将来自与相应显示设备渲染缓冲器32、34、36、38相对应的音频流13的部分的音频数据12包括在音频数据子集37、39、41、43中。音频数据子集37、39、41、43可以包括相同的音频数据12。这样,显示设备106、108、110、112可以输出相同的音频数据12。此外,音频数据子集37、39、41、43可以包括不同的音频数据12,从而使每个显示设备106、108、110、112可以输出不同的音频数据12。当一个或多个显示设备106、108、110、112可能不需要输出音频时(例如,当应用位于不同显示设备上时),音频数据子集37、39、41、43还可以包括静音。
排序可以被应用于显示设备106、108、110、112。排序可以具有基于显示设备106、108、110、112与计算机设备102连接和/或通信的顺序的值的布置(或相对位置)。例如,显示设备106可以是第一显示设备,显示设备108可以是第二显示设备,显示设备110可以是第三显示设备,并且显示设备112可以是第四显示设备。音频数据12可以使用排序被放置在音频流13中。此外,排序可以用于标识显示设备渲染缓冲器32、34、36、38的该数目的部分的子集。
在404,方法400可以包括从多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号。音频聚合器驱动器14可以包括同步管理器16,同步管理器16可以包括可以由计算机设备和显示设备106、108、110、112使用的时钟11或其他定时机制。例如,时钟11可以是USB时钟,并且显示设备106、108、110、112可以使用时钟11作为每个显示设备106、108、110、112的音频数据时钟的源。显示设备渲染缓冲器32、34、36、38的帧号可以与时钟11的定时相关。这样,时钟11的定时可以用于同步计算机设备102与显示设备106、108、110、112之间的音频数据。
同步管理器16可以从与第一显示设备(例如,显示设备106)相关联的单元驱动器15接收显示设备渲染缓冲器32的当前帧号18。当前帧号18可以是来自显示设备106的显示设备渲染缓冲器32的当前帧号,该当前帧号对应于时钟11的定时。对于高速和超高速显示设备,数据传输速率可以是微帧。微帧的长度为125微秒,并且八个连续微帧构成一个高速或超高速帧。这样,一个帧的长度可以是1毫秒。
在406,方法400可以包括通过向当前帧号添加常数来确定已更新帧号。同步管理器16可以确定常数22,该常数22说明在执行设备初始化20时的延迟,该设备初始化20准备所有显示设备106、108、110、112以接收音频数据12以经由显示设备106、108、110上的扬声器40、44、48、52来输出。设备初始化20可以包括指示单元驱动器15、17、19、21准备显示设备渲染缓冲器32、34、36、38。常数22的值可以提供足够的时间来将所有显示设备106、108、110、112初始化为能够接收音频数据12的运行状态。例如,常数22可以是八,这可以允许八毫秒来将所有显示设备106、108、110、112移动到运行状态并且开始流传输音频数据12。常数22可以随着移动显示设备106、108、110、112的时间增加或减少而被修改。此外,常数22可以随着显示设备106、108、110、112的数目增加和/或减少而增加和/或减少。这样,常数22可以响应于系统的变化、系统速度的变化和/或其他考虑因素而改变。
同步管理器16可以通过将常数22添加到当前帧号18来计算已更新帧号24。已更新帧号24可以是指定的定时指示符,该定时指示符可以确保在显示设备106、108、110、112中的每个显示设备上输出的音频数据子集37、39、41、43同时开始。
在408,方法400可以包括生成多个USB请求块,该多个USB请求块包括已更新帧号和具有多个音频数据子集的分组。音频聚合器驱动器可以将已更新帧号24和音频数据子集37、39、41、43发送到单元驱动器15、17、19、21以传输到显示设备106、108、110、112。每个单元驱动器15、17、19、21可以针对相应显示设备106、108、110、112生成一个或多个USB请求块30、31、33、35。USB请求块30、31、33、35可以包括已更新帧号24和音频数据子集37、39、41、43的一个或多个分组23、25、27、29(图3)。
例如,单元驱动器15可以生成USB请求块30,USB请求块30包括已更新帧号24和具有显示设备106的音频数据子集37的一个或多个分组23。单元驱动器17可以生成USB请求块31,USB请求块31包括已更新帧号24和具有显示设备108的音频数据子集39的一个或多个分组25。单元驱动器19可以生成USB请求块33,USB请求块33包括已更新帧号24和具有显示设备110的音频数据子集41的一个或多个分组27。单元驱动器21可以生成USB请求块35,USB请求块35包括已更新帧号24和具有显示设备112的音频数据子集43的一个或多个分组29。
在410,方法400可以包括向多个显示设备中的对应显示设备发送多个USB请求块中的每个USB请求块。USB堆栈28可以从单元驱动器15、17、19、21接收(多个)USB请求块30、31、33、35。具有已更新帧号24和音频数据子集37、39、41、43的分组23、25、27、29的USB请求块30、31、33、35可以被发送到相应显示设备渲染缓冲器32、34、36、38。
例如,USB请求块30可以被发送到显示设备106的显示设备渲染缓冲器32,并且显示设备渲染缓冲器32可以在已更新帧号24处经由扬声器40输出音频数据子集37。例如,当时钟11的定时与已更新帧号24匹配时,显示设备渲染缓冲器32可以开始输出音频数据子集37。另外,USB请求块31可以被发送到显示设备渲染缓冲器34,并且显示设备渲染缓冲器34可以在已更新帧号24处使用扬声器44输出音频数据子集39。例如,当时钟11的定时等于已更新帧号24时,显示设备渲染缓冲器34可以开始输出音频数据子集39。USB请求块33可以被发送到显示设备渲染缓冲器36,并且显示设备渲染缓冲器36可以在已更新帧号24处经由扬声器48输出音频数据子集43。例如,当时钟11的定时达到已更新帧号24时,显示设备渲染缓冲器36可以开始输出音频数据子集43。USB请求块35可以被发送到显示设备渲染缓冲器38,并且显示设备渲染缓冲器38可以在已更新帧号24处使用扬声器52输出音频数据子集43。例如,当时钟11的定时与已更新帧号24相同时,显示设备渲染缓冲器38可以开始输出音频数据子集43。
这样,显示设备渲染缓冲器32、34、36、38可以从USB请求块30、31、33、35接收音频数据子集37、39、41、43。显示设备106、108、110、112可以在已更新帧号24处经由扬声器40、44、48、52输出所接收的音频数据子集37、39、41、43。在任何给定点每个显示设备渲染缓冲器32、34、36、38上的已更新帧号24可以相同,从而满足所有显示设备106、108、110、112之间的同步可以在微帧内发生的期望。当USB请求块30从USB堆栈28被传输时,已更新帧号24可以由同步管理器16保持最新。
通过设置在未来开始输出音频数据子集37、39、41、43的时间以允许有足够的时间将音频数据子集37、39、41、43复制到显示设备渲染缓冲器32、34、36、38中,可以保证USB总线在完全相同的时间将音频数据子集37、39、41、43传送到所有显示设备106、108、110、112。这样,从显示设备106、108、110、112的扬声器40、44、48、52发出的音频可以被同步。
现在参考图5,与图1相比,根据实施方式可以被配置为计算机设备102的示例计算机500包括附加组件细节。在一个示例中,计算机500可以包括用于执行与本文中描述的组件和功能中的一个或多个组件和功能相关联的处理功能的处理器56。处理器56可以包括单组或多组处理器或多核处理器。此外,处理器56可以实现为集成处理系统和/或分布式处理系统。
计算机500还可以包括诸如用于存储由处理器56执行的应用的本地版本的存储器58。存储器58可以包括可以由计算机使用的存储器类型,诸如随机存取存储器(RAM)、只读存储器(ROM)、磁带、磁盘、光盘、易失性存储器、非易失性存储器和其任何组合。此外,处理器56可以包括和执行操作系统111(图1)。
此外,计算机500可以包括通信组件60,通信组件46提供使用本文中描述的硬件、软件和服务来建立和维持与一方或多方的通信。通信组件60可以承载计算机设备102上的组件之间以及计算机设备102与外部设备(诸如位于通信网络上的设备和/或串行或本地连接到计算机设备102的设备)之间的通信。例如,通信组件图60可以包括一个或多个总线,并且还可以包括可操作用于与外部设备接口的分别与传输器和接收器相关联的传输链组件和接收链组件。
此外,计算机500可以包括数据存储62,数据存储62可以是硬件和/或软件的任何合适的组合,数据存储62提供结合本文中描述的实施方式而使用的信息、数据库和程序的大容量存储。例如,数据存储62可以是应用10、音频聚合器驱动器14、单元驱动器15、单元驱动器17、单元驱动器19、单元驱动器21和/或USB堆栈28的数据储存库。
计算机500还可以包括用户接口组件64,用户接口组件64可操作以从计算机设备102的用户接收输入并且还可操作以生成用于呈现给用户的输出。用户接口组件64可以包括一个或多个输入设备,包括但不限于键盘、数字键盘、鼠标、显示器(例如,其可以是触敏显示器)、导航键、功能键、麦克风、语音识别组件、能够从用户接收输入的任何其他机制、或其任何组合。此外,用户接口组件64可以包括一个或多个输出设备,包括但不限于显示器、扬声器、触觉反馈机构、打印机、能够向用户呈现输出的任何其他机构、或其任何组合。
在实施方式中,用户接口组件64可以传输和/或接收与应用10、音频聚合器驱动器14、单元驱动器15、单元驱动器17、单元驱动器19、单元驱动器21和/或USB堆栈28相对应的消息。此外,处理器56执行应用10、音频聚合器驱动器14、单元驱动器15、单元驱动器17、单元驱动器19、单元驱动器21和/或USB堆栈28,并且存储器58或数据存储62可以存储他们。
如本申请中使用的,术语“组件”、“系统”等旨在包括计算机相关实体,诸如但不限于硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,组件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。最晚说明,在计算机设备上运行的应用和计算机设备都可以是组件。一个或多个组件可以驻留在一个进程和/或执行线程中,并且一个组件可以位于一个计算机上和/或分布在两个或多个计算机之间。此外,这些组件可以从其上存储有各种数据结构的各种计算机可读介质来执行。组件可以通过本地和/或远程进程的方式通信,诸如根据具有一个或多个数据分组的信号,诸如来自与本地系统、分布式系统中的另一组件交互的一个组件的数据,和/或通过信号的方式通过诸如互联网等网络与其他系统通信。
此外,术语“或”旨在表示包括性的“或”而不是排他性的“或”。也就是说,除非另有说明或从上下文中清楚地看出,否则短语“X采用A或B”旨在表示任何自然包括性排列。即,以下情况中的任何一种满足短语“X采用A或B”:X采用A;X采用B;或X采用A和B两者。此外,除非另有说明或从上下文中清楚地看出指向单数形式,否则本申请和所附权利要求中使用的冠词“一个(a)”和“一个(an)”一般应当解释为表示“一个或多个”。
已经根据可以包括多个设备、组件、模块等的系统呈现了各种实施方式或特征。应当理解和领会,各种系统可以包括附加的设备、组件、模块等和/或可以并非包括结合附图讨论的所有设备、组件、模块等。也可以使用这些方法的组合。
结合本文中公开的实施例描述的方法的各种说明性逻辑、逻辑块和动作可以用被设计为执行本文中描述的功能的通用处理器、数字信号处理器(DSP)、应用特定集成电路(ASIC)、现场可编程门阵列(FPGA)或其他可编程逻辑器件、分立的门或晶体管逻辑、分立的硬件组件、或其任何组合中的专门编程的一个来实现或执行。通用处理器可以是微处理器,但在替代方案中,处理器可以是任何常规处理器、控制器、微控制器或状态机。处理器还可以实现为计算机设备的组合,例如DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP核相结合、或者任何其他这样的配置。此外,至少一个处理器可以包括可操作以执行上述步骤和/或动作中的一个或多个步骤和/或动作的一个或多个组件。
此外,结合本文中公开的实施方式描述的方法或算法的步骤和/或动作可以直接体现在硬件中、在由处理器执行的软件模块中、或者在这两者的组合中。软件模块可以驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域已知的任何其他形式的存储介质中。示例性存储介质可以耦合到处理器,使得处理器可以从存储介质读取信息和向存储介质写入信息。备选地,存储介质可以与处理器成一体。此外,在一些实施方式中,处理器和存储介质可以驻留在ASIC中。另外,ASIC可以驻留在用户终端中。备选地,处理器和存储介质可以作为分立组件驻留在用户终端中。此外,在一些实施方式中,方法或算法的步骤和/或动作可以作为一个或任何组合或一组代码和/或指令存在于机器可读介质和/或计算机可读介质中,该介质可以并入计算机程序产品中。
在一种或多种实施方式中,所描述的功能可以以硬件、软件、固件或其任何组合来实现。如果以软件实现,则这些功能可以作为一个或多个指令或代码在计算机可读介质上存储或传输。计算机可读介质包括计算机存储介质和通信介质,包括促进将计算机程序从一个地方传输到另一地方的任何介质。存储介质可以是计算机可以访问的任何可用介质。作为示例而非限制,这样的计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可以用于以指令或数据结构形式存储期望程序代码并且可以由计算机访问的任何其他介质。本文中使用的磁盘和光盘包括压缩光盘(CD)、激光光盘、光碟、数字多功能光盘(DVD)、软盘和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘通常用激光以光学方式再现数据。上述各项的组合也应当被包括在计算机可读介质的范围内。
虽然已经结合其示例描述了本公开的实施方式,但是本领域技术人员将理解,可以在不脱离其范围的情况下对上述实施方式进行变型和修改。根据说明书的考虑或根据本文中公开的示例的实践,其他实施方式对于本领域技术人员而言将是很清楚的。
Claims (15)
1.一种计算机设备,包括:
存储器,用于存储数据和指令;
至少一个处理器,被配置为与所述存储器通信;以及
操作系统,被配置为与所述存储器和所述至少一个处理器通信,其中所述操作系统可操作以:
使用来自音频流的音频数据确定多个音频数据子集,以经由通用串行总线(USB)连接传输到与所述计算机设备通信的多个显示设备;
从所述多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号;
通过向所述当前帧号添加常数来确定已更新帧号;
生成多个USB请求块,其中所述多个USB请求块中的每个USB请求块包括所述已更新帧号和具有所述多个音频数据子集中的一个音频数据子集的分组;以及
向所述多个显示设备中的对应显示设备发送所述多个USB请求块中的每个USB请求块。
2.根据权利要求1所述的计算机设备,其中所述常数是响应于执行设备初始化时的延迟而计算的,所述设备初始化准备所述多个显示设备中的每个显示设备以接收所述多个音频数据子集。
3.根据权利要求1所述的计算机设备,其中所述操作系统还可操作以:
响应于所述多个显示设备的排序,确定所述多个显示设备的顺序;以及
响应于所述顺序而确定所述第一显示设备。
4.根据权利要求1所述的计算机设备,其中所述操作系统还可操作以:
将所述音频流划分成一定数目的部分,其中所述部分的所述数目等于所述多个显示设备的数目乘以所述多个显示设备所支持的通道的数目;
针对所述多个显示设备中的每个显示设备确定所述数目的部分的子集,以及
将来自所述数目的部分的所述子集的所述音频数据包括在针对所述多个显示设备中的每个显示设备的所述多个音频数据子集中。
5.根据权利要求1所述的计算机设备,其中所述计算机设备和所述多个显示设备中的每个显示设备共享USB时钟,并且
其中所述操作系统还可操作以:响应于所述USB时钟的定时,获得所述显示设备渲染缓冲器的所述当前帧号。
6.根据权利要求1所述的计算机设备,其中所述操作系统还可操作以:
在所述多个USB请求块被发送到所述多个显示设备中的每个显示设备之后,改变所述已更新帧号。
7.一种用于在与计算机设备通信的多个显示设备之间同步音频数据的方法,包括:
在所述计算机设备上执行的操作系统处,使用来自音频流的音频数据确定多个音频数据子集,以经由通用串行总线(USB)连接传输到与所述计算机设备通信的多个显示设备;
从所述多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号;
通过向所述当前帧号添加常数来确定已更新帧号;
生成多个USB请求块,其中所述多个USB请求块中的每个USB请求块包括所述已更新帧号和具有所述多个音频数据子集中的一个音频数据子集的分组;以及
向所述多个显示设备中的对应显示设备发送所述多个USB请求块中的每个USB请求块。
8.根据权利要求7所述的方法,其中所述多个显示设备中的每个显示设备在所述已更新帧号处输出所述多个音频数据子集。
9.根据权利要求7所述的方法,其中所述常数是响应于执行设备初始化时的延迟而计算的,所述设备初始化准备所述多个显示设备中的每个显示设备以接收所述多个音频数据子集。
10.根据权利要求9所述的方法,其中所述常数响应于以下至少一项而改变:所述多个显示设备的数目的改变,或执行所述设备初始化的速度的改变。
11.根据权利要求7所述的方法,还包括:
响应于所述多个显示设备的排序,确定所述多个显示设备的顺序;以及
响应于所述顺序确定所述第一显示设备。
12.根据权利要求7所述的方法,还包括:
将所述音频流划分成一定数目的部分,其中所述部分的所述数目等于所述多个显示设备的数目乘以所述多个显示设备所支持的通道的数目;
针对所述多个显示设备中的每个显示设备确定所述数目的部分的子集,以及
将来自所述数目的部分的所述子集的所述音频数据包括在针对所述多个显示设备中的每个显示设备的所述多个音频数据子集中。
13.根据权利要求7所述的方法,其中所述计算机设备和所述多个显示设备中的每个显示设备共享USB时钟,并且所述显示设备渲染缓冲器的所述当前帧号是响应于所述USB时钟的定时而获得的。
14.根据权利要求7所述的方法,其中所述方法还包括:
在所述多个USB请求块被发送到所述多个显示设备中的每个显示设备之后,改变所述已更新帧号。
15.一种存储由计算机设备可执行的指令的计算机可读介质,包括:
用于使所述计算机设备使用来自音频流的音频数据确定多个音频数据子集以经由通用串行总线(USB)连接传输到与所述计算机设备通信的多个显示设备的至少一个指令;
用于使所述计算机设备从所述多个显示设备中的第一显示设备获得显示设备渲染缓冲器的当前帧号的至少一个指令;
用于使所述计算机设备通过向所述当前帧号添加常数来确定已更新帧号的至少一个指令;
用于使所述计算机设备生成多个USB请求块的至少一个指令,其中所述多个USB请求块中的每个USB请求块包括所述已更新帧号和具有所述多个音频数据子集中的一个音频数据子集的分组;以及
用于使所述计算机设备向所述多个显示设备中的对应显示设备发送所述多个USB请求块中的每个USB请求块的至少一个指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/428,088 | 2019-05-31 | ||
US16/428,088 US10884973B2 (en) | 2019-05-31 | 2019-05-31 | Synchronization of audio across multiple devices |
PCT/US2020/029183 WO2020242660A1 (en) | 2019-05-31 | 2020-04-22 | Synchronization of audio across multiple devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113874850A true CN113874850A (zh) | 2021-12-31 |
Family
ID=70617256
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080038824.1A Pending CN113874850A (zh) | 2019-05-31 | 2020-04-22 | 跨多个设备的音频的同步 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10884973B2 (zh) |
EP (1) | EP3963463B1 (zh) |
CN (1) | CN113874850A (zh) |
WO (1) | WO2020242660A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3900373A4 (en) * | 2018-12-18 | 2022-08-10 | Intel Corporation | DISPLAY-BASED AUDIO DIVISION IN MULTIMEDIA ENVIRONMENTS |
US11170800B2 (en) | 2020-02-27 | 2021-11-09 | Microsoft Technology Licensing, Llc | Adjusting user experience for multiuser sessions based on vocal-characteristic models |
US11038937B1 (en) * | 2020-03-06 | 2021-06-15 | Sonos, Inc. | Hybrid sniffing and rebroadcast for Bluetooth networks |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004008330A1 (en) * | 2002-07-17 | 2004-01-22 | Fiberbyte Pty Ltd | Synchronized multichannel universal serial bus |
US9319792B1 (en) * | 2014-03-17 | 2016-04-19 | Amazon Technologies, Inc. | Audio capture and remote output |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7136934B2 (en) | 2001-06-19 | 2006-11-14 | Request, Inc. | Multimedia synchronization method and device |
US8234395B2 (en) | 2003-07-28 | 2012-07-31 | Sonos, Inc. | System and method for synchronizing operations among a plurality of independently clocked digital data processing devices |
US20070110074A1 (en) * | 2004-06-04 | 2007-05-17 | Bob Bradley | System and Method for Synchronizing Media Presentation at Multiple Recipients |
US7631119B2 (en) * | 2004-06-25 | 2009-12-08 | Apple Inc. | Techniques for providing audio for synchronized playback by multiple devices |
US20080134282A1 (en) | 2006-08-24 | 2008-06-05 | Neustar, Inc. | System and method for filtering offensive information content in communication systems |
US7953118B2 (en) | 2006-12-08 | 2011-05-31 | Microsoft Corporation | Synchronizing media streams across multiple devices |
US8200587B2 (en) | 2008-04-07 | 2012-06-12 | Microsoft Corporation | Techniques to filter media content based on entity reputation |
JP5575229B2 (ja) | 2009-05-20 | 2014-08-20 | クロノロジック プロプライエタリー リミテッド | 分散型の同期されたクロックアーキテクチャのためのジッタ低減方法およびジッタ低減装置 |
US20150070516A1 (en) | 2012-12-14 | 2015-03-12 | Biscotti Inc. | Automatic Content Filtering |
US20140358520A1 (en) | 2013-05-31 | 2014-12-04 | Thomson Licensing | Real-time online audio filtering |
WO2018152242A1 (en) | 2017-02-15 | 2018-08-23 | Amazon Technologies, Inc. | Selection of master device for synchronized audio |
US10431217B2 (en) * | 2017-02-15 | 2019-10-01 | Amazon Technologies, Inc. | Audio playback device that dynamically switches between receiving audio data from a soft access point and receiving audio data from a local access point |
US10366347B2 (en) | 2017-06-02 | 2019-07-30 | At&T Intellectual Property I, L.P. | Methods, systems and devices for monitoring and controlling media content using machine learning |
US20190052471A1 (en) | 2017-08-10 | 2019-02-14 | Microsoft Technology Licensing, Llc | Personalized toxicity shield for multiuser virtual environments |
US11606407B2 (en) * | 2018-07-05 | 2023-03-14 | Prowire Sport Limited | System and method for capturing and distributing live audio streams of a live event |
-
2019
- 2019-05-31 US US16/428,088 patent/US10884973B2/en active Active
-
2020
- 2020-04-22 EP EP20725026.7A patent/EP3963463B1/en active Active
- 2020-04-22 CN CN202080038824.1A patent/CN113874850A/zh active Pending
- 2020-04-22 WO PCT/US2020/029183 patent/WO2020242660A1/en unknown
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2004008330A1 (en) * | 2002-07-17 | 2004-01-22 | Fiberbyte Pty Ltd | Synchronized multichannel universal serial bus |
US9319792B1 (en) * | 2014-03-17 | 2016-04-19 | Amazon Technologies, Inc. | Audio capture and remote output |
Non-Patent Citations (1)
Title |
---|
"Universal Serial Bus Device Class Definition For Audio Devices", pages 17 - 20, Retrieved from the Internet <URL:http://www.usb.org/developers/docs/devclass_docs/audio10.pdf> * |
Also Published As
Publication number | Publication date |
---|---|
WO2020242660A1 (en) | 2020-12-03 |
US20200379942A1 (en) | 2020-12-03 |
EP3963463B1 (en) | 2024-02-14 |
US10884973B2 (en) | 2021-01-05 |
EP3963463A1 (en) | 2022-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3963463B1 (en) | Synchronization of audio across multiple devices | |
EP2695327B1 (en) | Systems and methods for implementing multicasting using personal area network (pan) wireless technology | |
US9986005B2 (en) | Media playback method and apparatus in multiple media devices | |
CN112069353B (zh) | 音乐播放控制方法、装置、存储介质及电子设备 | |
WO2018113318A1 (zh) | 一种多通道ddr交织控制方法及装置、存储介质 | |
CN111147906B (zh) | 同步播放系统及同步播放方法 | |
US9986362B2 (en) | Information processing method and electronic device | |
CN112055242A (zh) | 视频同步播放方法、装置、系统和存储介质 | |
JP2021519009A (ja) | 同期信号ブロックの伝送方法、装置、及び記憶媒体 | |
WO2023179406A1 (zh) | 一种播放信息的同步方法、装置、终端设备和存储介质 | |
WO2024037480A1 (zh) | 交互方法、装置、电子设备和存储介质 | |
CN113892080B (zh) | 将多个端点表示为一个端点的设备聚合 | |
US11245985B2 (en) | Architecture for USB-synchronized array of speakers | |
WO2023165384A1 (zh) | 一种同步播放方法、装置、终端设备和存储介质 | |
CN112218140A (zh) | 视频同步播放方法、装置、系统和存储介质 | |
CN113841426A (zh) | 使用应用位置信息向各种通道发送音频 | |
US11418275B2 (en) | Audio playback system and method | |
US11563857B2 (en) | Aggregating hardware loopback | |
US20180018296A1 (en) | Flow control protocol for an audio bus | |
CN115210694A (zh) | 数据传输方法及装置 | |
US9542922B2 (en) | Method for inserting watermark to image and electronic device thereof | |
EP4031983B1 (en) | Converting a pin into a loopback pin | |
US11716569B2 (en) | Methods, systems, and media for identifying a plurality of sets of coordinates for a plurality of devices | |
JP2017059930A (ja) | コンテンツ再生装置、コンテンツ再生方法、コンテンツ再生プログラム | |
CN111586240A (zh) | 用于播放音频的方法和装置 |
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 |