Audio data transmission method and device, storage medium and electronic equipment
By using multiple loopback channels of the cloud management platform and loop echo card in the remote desktop to allocate a unique channel to each session, the sound interference problem in the audio data transmission of the remote desktop is solved, and audio data under multiple sessions is realized transmission.
Patent Information
- Application Number
- CN202411468400.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-21
- Publication Date
- 2025-01-07
AI Technical Summary
The prior art cannot effectively support audio data transmission in remote desktops, especially in multi-session scenarios, resulting in interference in sound usage and poor audio data transmission, and lack of applicable solutions.
Establish connections through the cloud management platform, use multiple loopback channels of the loopback card to assign unique loopback channels to each session, realize the transmission of audio data, and configure the sound acquisition and injection module to use these channels through the audio management module to avoid the use of these channels Sound disturbance.
It realizes audio data transmission on the remote desktop under multiple sessions, avoids interference between sessions of sound usage and ensures effective transmission of audio data.
Smart Images

Figure CN119276840A_ABST
Abstract
Description
Background Art
[0002] In the era of cloud computing, more and more desktops and applications are running in the cloud. Only a few resources are reserved on the local terminal (local PC), and remote access to the cloud desktop is sufficient. The remote terminal (remote PC) is a server host with server properties. It has session-level remote properties, which allows multiple users to access the remote desktop at the same time, forming desktop-level session isolation.
[0003] In the related art, there is a system audio service in each session. The audio device that the audio service relies on can be a physical sound card, a virtual sound card, or even a sound card virtualized by the audio service. Although these audio services can complete the playback and recording of sounds, they cannot perfectly virtualize a sound card device and function that can play and record sounds while supporting sound collection and injection, thus affecting the transmission of audio data.
[0004] Moreover, ordinary hardware sound cards are suitable for ordinary desktop users, but not for remote desktop users. Therefore, hardware sound cards cannot well build an overall solution that takes into account playback and recording, collection and injection, and cannot provide effective support, thus affecting the transmission of audio data. In addition, in multiple sessions, there will be problems with sound card multiplexing and reuse, and it is impossible to support the isolation of multiple sessions of sound, causing interference in the use of sound between sessions. Therefore, there is currently no audio data transmission solution suitable for remote desktops in multiple sessions.
[0005] Therefore, it is necessary to provide a new technical solution to improve one or more problems existing in the above solutions.
[0006] It should be noted that the information disclosed in the above background technology section is only used to enhance the understanding of the background of the present application, and therefore may include information that does not constitute the prior art known to ordinary technicians in the field. Summary of the invention
[0007] The purpose of the present application is to provide an audio data transmission method, device, storage medium and electronic device, thereby overcoming one or more problems caused by limitations and defects of related technologies at least to a certain extent.
[0008] According to a first aspect of an embodiment of the present application, there is provided an audio data transmission method, comprising:
[0009] Establishing connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform;
[0010] The audio management module of the remote terminal determines whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels, and the first recording sub-device includes a plurality of first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels, and the second recording sub-device includes a plurality of second recording channels; the loopback channel includes a channel formed by each of the first playback channels connected to the corresponding first recording channel, and a channel formed by each of the second playback channels connected to the corresponding second recording channel;
[0011] If there is a free loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session;
[0012] The audio data is transmitted through the corresponding loopback channel allocated in the current session.
[0013] In an embodiment of the present application, if there is a vacant loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session, including:
[0014] The audio management module notifies the session management module to allocate a loopback channel sequence number for the current session;
[0015] The audio management module configures the loopback channel sequence number used by the system audio service of the current session;
[0016] The audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session.
[0017] In an embodiment of the present application, the audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session, and then includes:
[0018] The session management module reports the configured loopback channel sequence number to the cloud management platform as a configuration success result.
[0019] In an embodiment of the present application, the audio data includes playback audio data and recording audio data;
[0020] Transmitting audio data through the corresponding loopback channel allocated in the current session includes:
[0021] The system audio service sends the playback audio data to the first playback channel in the first device and to the corresponding second recording channel in the second device according to the configured loopback channel sequence number, so that the sound collection module reads the playback audio data and sends it to the local terminal;
[0022] The sound injection module receives the recorded audio data sent by the local terminal, and sends the recorded audio data to the first playback channel of the second device according to the configured loopback channel sequence number, and then sends the recorded audio data to the corresponding first recording channel in the first device, so that the system audio service reads the recorded audio data and records it.
[0023] In an embodiment of the present application, the audio management module of the remote terminal determines whether there is an empty loopback channel in the loopback sound card, and then further includes:
[0024] If there is no free loopback channel in the loopback sound card, the audio management module fails to allocate the loopback channel for the current session;
[0025] And the failure to allocate the loopback channel for the current session is reported to the cloud management platform as a configuration failure result.
[0026] In an embodiment of the present application, the method further includes:
[0027] When the current session is disconnected, the loopback channel used by the current session is released through the cloud management platform.
[0028] In an embodiment of the present application, the establishing of connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform includes:
[0029] Based on the request from the cloud management platform to create current sessions corresponding to at least two of the local terminals respectively, the session management module creates a current session corresponding to each of the local terminals.
[0030] According to a second aspect of an embodiment of the present application, there is provided an audio data transmission device of a remote desktop, comprising:
[0031] A connection establishment module is used to establish connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform;
[0032] A judgment module, used for the audio management module of the remote terminal to judge whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels, and the first recording sub-device includes a plurality of first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels, and the second recording sub-device includes a plurality of second recording channels; each of the loopback channels includes a channel formed by each of the first playback channels connected to the corresponding first recording channel, and a channel formed by each of the second playback channels connected to the corresponding second recording channel;
[0033] A first judgment submodule, configured to allocate the corresponding loopback channel to the current session by the audio management module if there is a vacant loopback channel in the loopback sound card;
[0034] The transmission module is used to transmit audio data through the corresponding loopback channel allocated in the current session.
[0035] According to a third aspect of the embodiments of the present application, a computer-readable storage medium is provided, on which a computer program is stored. When the program is executed by a processor, the steps of the audio data transmission method described in any one of the above embodiments are implemented.
[0036] According to a fourth aspect of an embodiment of the present application, there is provided an electronic device, including:
[0037] Processor; and
[0038] A memory, configured to store executable instructions of the processor;
[0039] The processor is configured to execute the steps of the audio data transmission method in any one of the above embodiments by executing the executable instructions.
[0040] The technical solution provided by the embodiments of the present application may have the following beneficial effects:
[0041] In one embodiment of the present application, through the above method, by using a loopback sound card with multiple loopback channels, and by allocating corresponding loopback channels to the current session through the audio management module, different loopback channels are allocated to different sessions, the audio usage problem of the remote desktop under multiple sessions is solved, and the transmission of audio data of the remote desktop under multiple sessions is realized. At the same time, because different loopback channels are allocated to different sessions, interference in the use of sound between sessions is avoided.
[0042] It should be understood that the foregoing general description and the following detailed description are exemplary and explanatory only and are not restrictive of the present application. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] The drawings herein are incorporated into the specification and constitute a part of the specification, illustrate embodiments consistent with the present application, and together with the specification are used to explain the principles of the present application. Obviously, the drawings described below are only some embodiments of the present application, and for ordinary technicians in this field, other drawings can be obtained based on these drawings without creative work.
[0044] Figure 1 A schematic diagram schematically illustrates a sharing method of a cloud desktop in an exemplary embodiment of the present application;
[0045] Figure 2 The overall architecture diagram in the exemplary embodiment of the present application is schematically shown;
[0046] Figure 3 A flowchart schematically showing a method for transmitting audio data in an exemplary embodiment of the present application;
[0047] Figure 4 A flowchart schematically showing the steps of establishing a connection in an exemplary embodiment of the present application;
[0048] Figure 5 A schematic diagram schematically illustrates a loopback sound card in an exemplary embodiment of the present application;
[0049] Figure 6 A flowchart schematically showing the steps of configuring a loopback channel in an exemplary embodiment of the present application;
[0050] Figure 7 Schematically shows a flow diagram of audio data in an exemplary embodiment of the present application;
[0051] Figure 8 A block diagram schematically shows an audio data transmission device in an exemplary embodiment of the present application;
[0052] Fig. 9 A schematic diagram of a program product in an exemplary embodiment of the present application is schematically shown;
[0053] Fig.10 A schematic diagram of an electronic device in an exemplary embodiment of the present application is schematically shown. DETAILED DESCRIPTION
[0054] Example embodiments will now be described more fully with reference to the accompanying drawings. However, example embodiments can be implemented in a variety of forms and should not be construed as limited to the examples set forth herein; rather, these embodiments are provided so that this application will be more comprehensive and complete and fully convey the concepts of the example embodiments to those skilled in the art. The described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.
[0055] In addition, the accompanying drawings are only schematic illustrations of the present application and are not necessarily drawn to scale. The same reference numerals in the figures represent the same or similar parts, and thus their repeated description will be omitted. Some of the block diagrams shown in the accompanying drawings are functional entities and do not necessarily correspond to physically or logically independent entities. These functional entities can be implemented in software form, or implemented in one or more hardware modules or integrated circuits, or implemented in different networks and / or processor devices and / or microcontroller devices.
[0056] In the related art, there are various ways to share remote desktops, one of which is Figure 1 As shown, S1, S2, S3, S4, and S5 are desktop sessions (i.e., sessions) corresponding to five remote desktops, and each desktop session has the characteristics of desktop isolation, process isolation, and operating environment isolation.
[0057] R1, R2, R3, R4, and R5 are five local PC users. They connect to the remote PC through the network and establish connections with S1, S2, S3, S4, and S5 respectively. R1 sees the remote desktop of S1, R2 sees the remote desktop of S2, and the same is true for other users. Each connection does not affect each other and is unaware of the existence of the other party.
[0058] In every session, there is a system audio service. For example, in Linux, there is a cross-platform audio service (pulseaudio) that can work over the network. The audio device that the audio service relies on can be a physical sound card, a virtual sound card, or even a sound card virtualized by the audio service. Although these audio services can complete the playback and recording of sounds, they cannot perfectly virtualize a sound card device and function that can play and record sounds while supporting sound collection and injection, thus affecting the transmission of audio data.
[0059] Ordinary hardware sound cards were originally designed for ordinary desktop users, not for remote desktop users. Therefore, it is not possible to construct a comprehensive solution that takes into account both playback and recording, collection and injection, and cannot provide effective support, which affects the transmission of audio data. In addition, even if the sound card has the function of recording the behavior (Loopback) of sending electronic signals, data streams, etc. back to the sender as is, it can capture all sound sources in the computer system, including microphone input, web pages, music players, etc. as input sound sources, and send them to the network partner or record them together, but it cannot support simulating the sound into the sound of the microphone and injecting it into the audio service to support the call recording scenario of the remote desktop. Finally, in multiple sessions, there will be problems with the reuse and reuse of sound cards, and it is impossible to support the isolation of multiple sessions of sound, resulting in interference in the use of sound between sessions. Therefore, there is currently no audio data transmission solution suitable for remote desktops in multiple sessions.
[0060] Based on this, this example implementation first provides an audio data transmission method. Figure 3 As shown in , the method may include: steps S101 to S104.
[0061] Wherein, step S101: establishing connections between at least two local terminals and corresponding current sessions in remote terminals through a cloud management platform.
[0062] Step S102: the audio management module of the remote terminal determines whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels, and the first recording sub-device includes a plurality of first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels, and the second recording sub-device includes a plurality of second recording channels; the loopback channel includes a channel formed by each first playback channel connected to a corresponding first recording channel, and a channel formed by each second playback channel connected to a corresponding second recording channel.
[0063] Step S103: If there is an empty loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session.
[0064] Step S104: audio data is transmitted via the corresponding loopback channel allocated in the current session.
[0065] In one embodiment of the present application, through the above method, by using a loopback sound card with multiple loopback channels, and by allocating corresponding loopback channels to the current session through the audio management module, different loopback channels are allocated to different sessions, the audio usage problem of the remote desktop under multiple sessions is solved, and the transmission of audio data of the remote desktop under multiple sessions is realized. At the same time, because different loopback channels are allocated to different sessions, interference in the use of sound between sessions is avoided.
[0066] Next, we will refer to Figures 2 to 7 Each step of the above method in this example implementation is described in more detail.
[0067] refer to Figure 2 This application introduces a cloud management platform, a loopback sound card, and an audio management module to solve the problem of audio data transmission of remote desktops under multiple sessions. The specific method of solving the technical problem by introducing a cloud management platform, a loopback sound card, and an audio management module is described below.
[0068] In step S101, the present application implements establishing connections between at least two local terminals and corresponding current sessions in remote terminals through the following steps.
[0069] For further reference, Figure 4 , step S101 includes the following steps:
[0070] Step S1011: The local terminal applies for remote connection to the cloud management platform;
[0071] Step S1012: the cloud management platform sends a request to the session management module of the remote terminal to apply for creating current sessions corresponding to at least two local terminals respectively;
[0072] Step S1013: the session management module creates a current session corresponding to each local terminal based on the request, so as to realize connection between at least two local terminals and the corresponding current sessions in the remote terminal respectively.
[0073] In step S102, the loopback card in the present application includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels. Similarly, the second device also includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels.
[0074] The loopback sound card in the present application has multiple loopback channels. Each loopback channel includes a channel formed by connecting each first playback channel to the corresponding first recording channel, and a channel formed by connecting each second playback channel to the corresponding second recording channel.
[0075] After at least two local terminals establish connections with the corresponding current sessions in the remote terminal respectively, a loopback sound card with multiple loopback channels is needed to allocate corresponding loopback channels to the current session through the audio management module of the remote terminal, so as to allocate different loopback channels to different sessions.
[0076] Combination Figure 5 , a plurality of first playback channels, a plurality of first recording channels, a plurality of second playback channels, and a plurality of second recording channels of the loopback sound card are described in detail.
[0077] The multiple first playback channels include at least first playback channel 0, first playback channel 1, first playback channel 2 and first playback channel 3; the first recording sub-device includes multiple first recording channels, and the multiple first recording channels include at least first recording channel 0, first recording channel 1, first recording channel 2 and first recording channel 3.
[0078] The multiple second playback channels include at least second playback channel 0, second playback channel 1, second playback channel 2 and second playback channel 3; the second recording sub-device includes multiple second recording channels, and the multiple second recording channels include at least second recording channel 0, second recording channel 1, second recording channel 2 and second recording channel 3.
[0079] Continue to refer Figure 5 , one of the loopback channels is described in detail, wherein the loopback channel includes a channel formed by the first playback channel 0 flowing to the first recording channel 0, and a channel formed by the second playback channel 0 connecting to the corresponding second recording channel 0. At the same time, the loopback channel is labeled as loopback channel No. 0.
[0080] Similarly, the channel formed by the first playback channel 1 flowing to the first recording channel 1, and the channel formed by the second playback channel 1 connecting to the corresponding second recording channel 1, are labeled as loopback channel 1. Similarly, the corresponding loopback channel formed is labeled as loopback channel 2.
[0081] Therefore, the multiple loopback channels at least include loopback channel No. 0, loopback channel No. 1, loopback channel No. 2, and loopback channel No. 3.
[0082] The following uses loopback channel 0 as an example to illustrate the use of the system audio service.
[0083] When the system audio service plays sound from the first playback channel 0 of the first device, the audio data will flow to the corresponding second recording channel 0 of the second device by default; the played sound can be collected through the second recording channel 0 of the second device. Similarly, when sound is injected from the second playback channel 0 of the second device (here it can be the sound of the microphone of the local terminal), the sound will flow to the first recording channel 0 of the first device by default, and the system audio service can complete the sound recording function through the first recording channel 0 of the first device.
[0084] The audio service system uses the first device to complete the playback and recording functions. When the audio service system uses the first device to complete the playback and recording functions, it is unaware of the second device.
[0085] When the session management module notifies the audio management module to allocate the corresponding loopback channel for the current session, the audio management module first needs to determine whether there is an empty loopback channel in the loopback sound card. If there is an empty loopback channel, the corresponding loopback channel will be allocated for the current session. If there is no empty loopback channel, the audio management module fails to allocate the loopback channel for the current session and reports it to the cloud management platform as a configuration failure result.
[0086] In step S103, if it is determined that there is an empty loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session.
[0087] For further reference, Figure 6 , step S103 includes the following steps:
[0088] Step S1031: the audio management module notifies the session management module to allocate a loopback channel number for the current session;
[0089] Step S1032: The audio management module configures the loopback channel number used by the system audio service of the current session;
[0090] Step S1033: The audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session.
[0091] In one embodiment, the audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session, and then includes:
[0092] The session management module reports the configured loopback channel number to the cloud management platform as a successful configuration result.
[0093] In step S104, the audio data includes played audio data and recorded audio data.
[0094] Furthermore, the step of transmitting the audio data through the corresponding loopback channel allocated in the current session includes the following:
[0095] The system audio service sends the playback audio data to the first playback channel in the first device according to the configured loopback channel sequence number, and sends it to the corresponding second recording channel in the second device, so that the sound collection module reads the playback audio data and sends it to the local terminal;
[0096] The sound injection module receives the recorded audio data sent by the local terminal, and sends the recorded audio data to the first playback channel of the second device according to the configured loopback channel number, and then sends the recorded audio data to the corresponding first recording channel in the first device, so that the system audio service reads the recorded audio data and records it.
[0097] Combine the following Figure 7 , an example is given to illustrate the transmission of audio data.
[0098] For the playback audio data, the data flow direction is indicated by the solid arrow in the figure, and the source of the playback audio data is the system audio service. The system audio service plays the playback audio data to the first playback channel 0 of the first device, and the playback audio data naturally flows to the second recording channel 0 of the second device. The sound collection module reads the playback audio data from the second recording channel 0 of the second device and sends it to the local PC through the remote network, and the local PC can hear the sound through the headphones.
[0099] For recorded audio data, the data flow direction is indicated by the dotted arrow in the figure. The local PC sends the recorded audio data of the microphone to the sound injection module of the remote PC through the network. The sound injection module then writes the recorded audio data to the second playback channel 0 of the second device; then the recorded audio data naturally flows to the first recording channel 0 of the first device, and the system audio service can read the recorded audio data from the first recording channel 0 of the first device to complete the recording function.
[0100] In one embodiment, the audio management module of the remote terminal determines whether there is an available loopback channel in the loopback sound card, and then further includes:
[0101] If there is no free loopback channel in the loopback sound card, the audio management module fails to allocate a loopback channel for the current session;
[0102] The failure to allocate a loopback channel for the current session will be reported to the cloud management platform as a configuration failure result.
[0103] It should be noted that if there is no free loopback channel in the loopback sound card, the audio management module fails to allocate a loopback channel for the current session, which has been described in the above embodiment and will not be repeated in this application.
[0104] In one embodiment, the method further comprises:
[0105] When the current session is disconnected, the loopback channel used by the current session is released through the cloud management platform.
[0106] It is understandable that when the current session is disconnected, the steps of releasing the loopback channel used by the current session through the cloud management platform include:
[0107] First, one of the users of the local PC (for example, R1) requests to disconnect the current session from the cloud management platform;
[0108] Secondly, the cloud management platform requests the session management module of the remote PC to disconnect the current session;
[0109] Again, the session management module notifies the audio management module to reclaim the loopback channel of the current session that needs to be disconnected;
[0110] Next, the audio management module configures the system service of the current session to no longer use the loopback channel;
[0111] Next, the audio management module configures the sound collection module and the sound injection module of the current session to no longer use the loopback channel;
[0112] Then, the audio management module notifies the session management module that the release is complete;
[0113] Finally, the session management module destroys the current session of the user connection (such as example S1).
[0114] In one embodiment, establishing connections between at least two local terminals and corresponding current sessions in remote terminals through a cloud management platform includes:
[0115] Based on a request from the cloud management platform to create current sessions corresponding to at least two local terminals respectively, the session management module creates a current session corresponding to each local terminal.
[0116] It should be noted that the understanding of establishing connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform has been described in detail in the above embodiments, and this application will not elaborate on it here.
[0117] It should be noted that, although the steps of the method in the present application are described in a specific order in the accompanying drawings, this does not require or imply that the steps must be performed in this specific order, or that all the steps shown must be performed to achieve the desired results. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step for execution, and / or one step may be decomposed into multiple steps for execution, etc. In addition, it is also easy to understand that these steps may be, for example, executed synchronously or asynchronously in multiple modules / processes / threads.
[0118] Furthermore, in this exemplary embodiment, an audio data transmission device is also provided. Figure 8 As shown in , the apparatus 200 may include: a connection establishment module 210 , a judgment module 220 , a first judgment submodule 230 , and a transmission module 240 . Wherein: a connection establishment module 210 is used to establish connections between at least two local terminals and the corresponding current sessions in the remote terminal through the cloud management platform; a judgment module 220 is used for the audio management module of the remote terminal to judge whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes multiple first playback channels, and the first recording sub-device includes multiple first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes multiple second playback channels, and the second recording sub-device includes multiple second recording channels; each loopback channel includes a channel formed by each first playback channel connected to the corresponding first recording channel, and a channel formed by each second playback channel connected to the corresponding second recording channel; a first judgment sub-module 230 is used for, if there is an empty loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session; a transmission module 240 is used to transmit audio data through the corresponding loopback channel allocated in the current session.
[0119] In one embodiment, it further includes:
[0120] A configuration module, used for the audio management module to notify the session management module to allocate a loopback channel sequence number for the current session;
[0121] The loopback channel number used by the audio management module to configure the system audio service of the current session;
[0122] The audio management module is used to configure the loopback channel number used by the sound collection module and the sound injection module of the current session.
[0123] In one embodiment, it further includes:
[0124] The first reporting module is used for the session management module to report the configured loopback channel sequence number as a configuration success result to the cloud management platform.
[0125] In one embodiment, it further includes:
[0126] The transmission submodule is used for the system audio service to send the playback audio data to the first playback channel in the first device according to the configured loopback channel sequence number, and to the corresponding second recording channel in the second device, so that the sound collection module reads the playback audio data and sends it to the local terminal;
[0127] The sound injection module is used to receive the recorded audio data sent by the local terminal, and send the recorded audio data to the first playback channel of the second device according to the configured loopback channel sequence number, and then send the recorded audio data to the corresponding first recording channel in the first device, so that the system audio service reads the recorded audio data and records it.
[0128] In one embodiment, it further includes:
[0129] The second judgment submodule is used for determining that if there is no free loopback channel in the loopback sound card, the audio management module fails to allocate the loopback channel for the current session;
[0130] The failure to allocate a loopback channel for the current session will be reported to the cloud management platform as a configuration failure result.
[0131] In one embodiment, it further includes:
[0132] The release module is used to release the loopback channel used by the current session through the cloud management platform when the current session is disconnected.
[0133] In one embodiment, it further includes:
[0134] The connection establishment submodule is used to apply for a request to create a current session corresponding to at least two local terminals respectively based on the cloud management platform, and the session management module creates a current session corresponding to each local terminal.
[0135] Regarding the device in the above embodiment, the specific manner in which each module performs operations has been described in detail in the embodiment of the method, and will not be elaborated here.
[0136] It should be noted that although several modules or units of the device for action execution are mentioned in the above detailed description, this division is not mandatory. In fact, according to the implementation mode of the present application, the features and functions of two or more modules or units described above can be concretized in one module or unit. Conversely, the features and functions of a module or unit described above can be further divided into multiple modules or units for concretization. The components displayed as modules or units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules can be selected according to actual needs to achieve the purpose of the present application scheme. Those of ordinary skill in the art can understand and implement it without paying creative work.
[0137] In an exemplary embodiment of the present application, a computer-readable storage medium is also provided, on which a computer program is stored, and when the program is included in a processor and executed, the steps of the audio data transmission method described in any of the above embodiments can be implemented. In some possible implementations, various aspects of the present invention can also be implemented in the form of a program product, which includes a program code, and when the program product is run on a terminal device, the program code is used to enable the terminal device to execute the steps of various exemplary embodiments of the present invention described in the above audio data transmission method section of this specification.
[0138] refer to Fig. 9 As shown, a program product 300 for implementing the above method according to an embodiment of the present invention is described, which can adopt a portable compact disk read-only memory (CD-ROM) and include program code, and can be run on a terminal device, such as a personal computer. However, the program product of the present invention is not limited thereto. In this document, a readable storage medium can be any tangible medium containing or storing a program, which can be used by or in combination with an instruction execution system, an apparatus or a device.
[0139] The program product may employ any combination of one or more readable media. The readable medium may be a readable signal medium or a readable storage medium. The readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared or semiconductor system, device or device, or any combination of the above. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.
[0140] The computer readable storage medium may include a data signal propagated in a baseband or as part of a carrier wave, wherein a readable program code is carried. This propagated data signal may take a variety of forms, including but not limited to an electromagnetic signal, an optical signal, or any suitable combination of the above. The readable storage medium may also be any readable medium other than a readable storage medium, which may send, propagate, or transmit a program for use by an instruction execution system, an apparatus, or a device or used in combination with it. The program code contained on the readable storage medium may be transmitted with any appropriate medium, including but not limited to wireless, wired, optical cable, RF, etc., or any suitable combination of the above.
[0141] Program code for performing the operations of the present invention may be written in any combination of one or more programming languages, including object-oriented programming languages such as Java, C++, etc., and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving a remote computing device, the remote computing device may be connected to the user computing device through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computing device (e.g., through the Internet using an Internet service provider).
[0142] In an exemplary embodiment of the present application, an electronic device is further provided, which may include a processor and a memory for storing executable instructions of the processor, wherein the processor is configured to execute the steps of the audio data transmission method described in any one of the above embodiments by executing the executable instructions.
[0143] It will be appreciated by those skilled in the art that various aspects of the present invention may be implemented as a system, method or program product. Therefore, various aspects of the present invention may be specifically implemented in the following forms, namely: a complete hardware implementation, a complete software implementation (including firmware, microcode, etc.), or a combination of hardware and software, which may be collectively referred to herein as a "circuit", "module" or "system".
[0144] Refer to the following Fig.10 The electronic device 600 according to this embodiment of the present invention is described. Fig.10 The electronic device 600 shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0145] like Fig.10As shown, the electronic device 600 is in the form of a general computing device. The components of the electronic device 600 may include, but are not limited to: at least one processing unit 610, at least one storage unit 620, a bus 630 connecting different system components (including the storage unit 620 and the processing unit 610), a display unit 640, etc.
[0146] The storage unit stores a program code, which can be executed by the processing unit 610, so that the processing unit 610 performs the steps according to various exemplary embodiments of the present invention described in the audio data transmission method section of this specification. For example, the processing unit 610 can perform the following steps: Figure 1 Follow the steps shown in .
[0147] The storage unit 620 may include a readable medium in the form of a volatile storage unit, such as a random access memory unit (RAM) 6201 and / or a cache memory unit 6202 , and may further include a read-only memory unit (ROM) 6203 .
[0148] The storage unit 620 may also include a program / utility 6204 having a set (at least one) of program modules 6205, such program modules 6205 including but not limited to: an operating system, one or more application programs, other program modules and program data, each of which or some combination may include the implementation of a network environment.
[0149] Bus 630 may represent one or more of several types of bus structures, including a memory unit bus or memory unit controller, a peripheral bus, an accelerated graphics port, a processing unit, or a local bus using any of a variety of bus architectures.
[0150] The electronic device 600 may also communicate with one or more external devices 700 (e.g., keyboards, pointing devices, Bluetooth devices, etc.), may also communicate with one or more devices that enable a user to interact with the electronic device 600, and / or communicate with any device that enables the electronic device 600 to communicate with one or more other computing devices (e.g., routers, modems, etc.). Such communication may be performed via an input / output (I / O) interface 650. Furthermore, the electronic device 600 may also communicate with one or more networks (e.g., a local area network (LAN), a wide area network (WAN), and / or a public network, such as the Internet) via a network adapter 660. The network adapter 660 may communicate with other modules of the electronic device 600 via a bus 630. It should be understood that, although not shown in the figure, other hardware and / or software modules may be used in conjunction with the electronic device 600, including but not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, RAID systems, tape drives, and data backup storage systems.
[0151] Through the description of the above implementation methods, it is easy for those skilled in the art to understand that the example implementation methods described here can be implemented by software or by combining software with necessary hardware. Therefore, the technical solution according to the implementation method of the present application can be embodied in the form of a software product, which can be stored in a non-volatile storage medium (which can be a CD-ROM, a USB flash drive, a mobile hard disk, etc.) or on a network, including several instructions to enable a computing device (which can be a personal computer, a server or a network device, etc.) to execute the above-mentioned audio data transmission method according to the implementation method of the present application.
[0152] Those skilled in the art will readily appreciate other embodiments of the present application after considering the specification and practicing the invention disclosed herein. The present application is intended to cover any modification, use or adaptation of the present application, which follows the general principles of the present application and includes common knowledge or customary technical means in the art that are not disclosed in the present application.
Claims
1. An audio data transmission method, characterized in that: include: Establishing connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform; The audio management module of the remote terminal determines whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels, and the first recording sub-device includes a plurality of first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels, and the second recording sub-device includes a plurality of second recording channels; the loopback channel includes a channel formed by each of the first playback channels connected to the corresponding first recording channel, and a channel formed by each of the second playback channels connected to the corresponding second recording channel; If there is a free loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session; The audio data is transmitted through the corresponding loopback channel allocated in the current session.
2. The audio data transmission method according to claim 1, characterized in that: If there is a free loopback channel in the loopback sound card, the audio management module allocates the corresponding loopback channel to the current session, including: The audio management module notifies the session management module to allocate a loopback channel sequence number for the current session; The audio management module configures the loopback channel sequence number used by the system audio service of the current session; The audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session.
3. The audio data transmission method according to claim 2, characterized in that: The audio management module configures the loopback channel sequence number used by the sound collection module and the sound injection module of the current session, and then includes: The session management module reports the configured loopback channel sequence number to the cloud management platform as a configuration success result.
4. The audio data transmission method according to claim 3, characterized in that: The audio data includes playback audio data and recording audio data; Transmitting audio data through the corresponding loopback channel allocated in the current session includes: The system audio service sends the playback audio data to the first playback channel in the first device and to the corresponding second recording channel in the second device according to the configured loopback channel sequence number, so that the sound collection module reads the playback audio data and sends it to the local terminal; The sound injection module receives the recorded audio data sent by the local terminal, and sends the recorded audio data to the first playback channel of the second device according to the configured loopback channel sequence number, and then sends the recorded audio data to the corresponding first recording channel in the first device, so that the system audio service reads the recorded audio data and records it.
5. The audio data transmission method according to claim 1, characterized in that: The audio management module of the remote terminal determines whether there is an empty loopback channel in the loopback sound card, and then further includes: If there is no free loopback channel in the loopback sound card, the audio management module fails to allocate the loopback channel for the current session; And the failure to allocate the loopback channel for the current session is reported to the cloud management platform as a configuration failure result.
6. The audio data transmission method according to claim 1, characterized in that: The method further comprises: When the current session is disconnected, the loopback channel used by the current session is released through the cloud management platform.
7. The audio data transmission method according to claim 1, characterized in that: The step of establishing, through the cloud management platform, connections between at least two local terminals and corresponding current sessions in the remote terminal includes: Based on the request from the cloud management platform to create current sessions corresponding to at least two of the local terminals respectively, the session management module creates a current session corresponding to each of the local terminals.
8. An audio data transmission device, characterized in that: The device includes: A connection establishment module is used to establish connections between at least two local terminals and corresponding current sessions in the remote terminal through the cloud management platform; A judgment module, used for the audio management module of the remote terminal to judge whether there is an empty loopback channel in the loopback sound card; wherein the loopback sound card includes a first device and a second device, the first device includes a first playback sub-device and a first recording sub-device, the first playback sub-device includes a plurality of first playback channels, and the first recording sub-device includes a plurality of first recording channels; the second device includes a second playback sub-device and a second recording sub-device, the second playback sub-device includes a plurality of second playback channels, and the second recording sub-device includes a plurality of second recording channels; each of the loopback channels includes a channel formed by each of the first playback channels connected to the corresponding first recording channel, and a channel formed by each of the second playback channels connected to the corresponding second recording channel; A first judgment submodule, configured to allocate the corresponding loopback channel to the current session by the audio management module if there is a vacant loopback channel in the loopback sound card; The transmission module is used to transmit audio data through the corresponding loopback channel allocated in the current session.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the steps of the audio data transmission method according to any one of claims 1 to 7 are implemented.
10. An electronic device, characterized in that: include: processor; as well as A memory, configured to store executable instructions of the processor; The processor is configured to execute the steps of the audio data transmission method according to any one of claims 1 to 7 by executing the executable instructions.