Content sharing method, apparatus, terminal, and storage medium
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-07-27
- Publication Date
- 2026-08-11
AI Technical Summary
[0016] In this embodiment of the application, by creating a first display area in a shared canvas to display the first dynamic content, and sharing the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, the first dynamic content can be displayed synchronously in the shared canvas of the second sharing terminal, thereby realizing the synchronous display of dynamic content across multiple terminals.
Smart Images

Figure CN119383385B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of human-computer interaction technology, and in particular to a content sharing method, device, terminal and storage medium. Background Technology
[0002] With the development of multi-terminal collaboration technology, multiple users can perform collaborative operations through different terminals in scenarios such as remote office collaboration and online education.
[0003] In related technologies, users can doodle, paste files, and perform other operations in a canvas application, and share them with other users. The operations are also displayed in other users' canvas applications, thereby achieving multi-terminal collaboration and content sharing. Summary of the Invention
[0004] This application provides a content sharing method, apparatus, terminal, and storage medium. The technical solution is as follows:
[0005] On the one hand, embodiments of this application provide a content sharing method, the method comprising:
[0006] A shared canvas is displayed, which is used for content sharing between the first sharing terminal and at least one second sharing terminal;
[0007] In response to the dynamic content addition operation on the shared canvas, a first display area is created in the shared canvas, and the first display area is used to display the first dynamic content shared by the first sharing terminal;
[0008] The multimedia stream data corresponding to the first dynamic content is shared with the second sharing terminal, so that the second sharing terminal displays the first dynamic content in the first display area of the shared canvas based on the multimedia stream data.
[0009] On the other hand, embodiments of this application provide a content sharing device, the device comprising:
[0010] A display module is used to display a shared canvas, which is used for content sharing between the first sharing terminal and at least one second sharing terminal.
[0011] An add module is used to create a first display area in the shared canvas in response to a dynamic content add operation on the shared canvas. The first display area is used to display the first dynamic content shared by the first sharing terminal.
[0012] The sharing module is used to share the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, so that the second sharing terminal displays the first dynamic content in the first display area of the shared canvas based on the multimedia stream data.
[0013] On the other hand, embodiments of this application provide a terminal, the terminal including a processor and a memory; the memory stores at least one instruction, the at least one instruction being executed by the processor to implement the content sharing method as described above.
[0014] On the other hand, embodiments of this application provide a computer-readable storage medium storing at least one instruction that is loaded and executed by a processor to implement the content sharing method as described above.
[0015] On the other hand, embodiments of this application provide a computer program product including computer instructions stored in a computer-readable storage medium. A terminal's processor reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the terminal to perform the content sharing method provided in various optional implementations of the above aspects.
[0016] In this embodiment of the application, by creating a first display area in a shared canvas to display the first dynamic content, and sharing the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, the first dynamic content can be displayed synchronously in the shared canvas of the second sharing terminal, thereby realizing the synchronous display of dynamic content across multiple terminals. Attached Figure Description
[0017] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0018] Figure 1 This is a schematic diagram of an implementation environment provided by an exemplary embodiment of this application;
[0019] Figure 2 This is a flowchart of a content sharing method provided in an exemplary embodiment of this application;
[0020] Figure 3 This is a schematic diagram illustrating the creation of a first display area provided in an exemplary embodiment of this application;
[0021] Figure 4 This is a schematic diagram illustrating the synchronous display of first dynamic content by a first sharing terminal and a second sharing terminal, provided in an exemplary embodiment of this application.
[0022] Figure 5This is a flowchart illustrating how a first sharing terminal shares first dynamic content with a second sharing terminal in different ways, as provided in an exemplary embodiment of this application.
[0023] Figure 6 This is a schematic diagram of a first display area and a second display area provided in an exemplary embodiment of this application;
[0024] Figure 7 This is a schematic diagram illustrating how a first sharing terminal controls second dynamic content in a second display area, provided in an exemplary embodiment of this application.
[0025] Figure 8 This is a timing diagram of the conversion of the first control parameter provided in an exemplary embodiment of this application;
[0026] Figure 9 This is a schematic diagram illustrating the permission management of a first sharing terminal to a second sharing terminal provided in an exemplary embodiment of this application;
[0027] Figure 10 This is a schematic diagram of a shared canvas provided in an exemplary embodiment of this application;
[0028] Figure 11 This is a structural block diagram of a content display device provided in an exemplary embodiment of this application;
[0029] Figure 12 This is a structural block diagram of a terminal provided in an exemplary embodiment of this application. Detailed Implementation
[0030] To make the objectives, technical solutions, and advantages of this application clearer, the embodiments of this application will be described in further detail below with reference to the accompanying drawings.
[0031] In related technologies, multi-device shared canvas applications allow multiple users to create on a canvas across different devices, such as doodling and pasting files. The underlying principle can be achieved through the WebSocket protocol to enable full-duplex communication between the client and server. This allows multiple sharing clients to synchronize their respective static commands for the canvas to each client in a timely manner and display them synchronously, thereby achieving multi-device collaboration and content sharing. Static commands refer to operation commands for static content, such as commands for doodling, or commands for copying, pasting, and moving files.
[0032] However, solutions using related technologies cannot achieve multi-device sharing of dynamic content on the canvas, such as sharing application screens, camera feeds, online videos, or live streams, so that the aforementioned dynamic content can be displayed synchronously on other users' canvases.
[0033] Therefore, this application provides a content sharing method to achieve multi-device sharing of dynamic content in a canvas.
[0034] See Figure 1 , Figure 1 This is a schematic diagram of an implementation environment provided by an exemplary embodiment of this application. The implementation environment includes multiple terminals corresponding to users (such as a first terminal 111 corresponding to user A, a second terminal 112 corresponding to user B, and a third terminal 113 corresponding to user C), and a server 12.
[0035] The terminals corresponding to multiple users are electronic devices with display screens, such as smartphones, laptops, tablets, navigation devices, and smart TVs. In this embodiment, the shared canvas has significant application advantages on terminal devices with large screens (such as foldable phones and foldable computers).
[0036] This application uses a first terminal 111 as a tablet computer, a second terminal 112 as a smartphone, and a third terminal 113 as a laptop computer as examples for illustration, but this does not constitute a limitation on the terminals. The terminal can be any electronic device that supports the shared canvas function.
[0037] Multiple user terminals can support the canvas sharing function. In some embodiments, the terminal can implement the canvas sharing function through a canvas application, such as a system app on a smartphone or a third-party app.
[0038] In some embodiments, users can manipulate static content such as documents and doodles on a shared canvas and synchronize these operations with other users.
[0039] In some embodiments, users can also share dynamic content such as application screens, camera feeds, online videos, or live streams on the shared canvas. For example, user A can embed a game application running on a first terminal 111 into the shared canvas. The first terminal 111 shares the multimedia stream data corresponding to the game application with the second terminal 112 (user B) and the third terminal 113 (user C), so that users B and C can watch user A's game screen in real time on their respective shared canvases. As another example, the first terminal 111 can share the camera video stream output by the camera with the second terminal 112 or the third terminal 113, so that users B and C can see user A's video screen in real time on the shared canvas.
[0040] Server 12 can be the backend server for the canvas application. Server 12 can be a standalone physical server, a server cluster or distributed system composed of multiple physical servers, or a cloud server that provides basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, content delivery networks (CDN), and big data and artificial intelligence platforms.
[0041] In some embodiments, multiple user terminals communicate directly with server 12, thereby enabling indirect communication with other terminals. In some embodiments, server 12 may include various services, such as WebSocket service 121, WebRTC service 122, and signaling service 123.
[0042] The WebSocket service 121 enables full-duplex communication between the client and server via the WebSocket protocol. For example, by establishing a connection between the first terminal 111 and the second terminal 112 through the WebSocket service 121, when user A performs operations on static content such as files and doodles on the shared canvas of the first terminal 111, the first terminal 111 transmits the data corresponding to the operation to the second terminal 112 based on the WebSocket protocol, so that the second terminal 112 can synchronize the operation on the shared canvas.
[0043] WebRTC service 122 can realize real-time audio and video communication through WebRTC (Web Real-Time Communication) technology. WebRTC uses the SRTP (Secure Real-time Transport Protocol) to achieve low-latency, high-bandwidth real-time audio and video transmission. For example, by establishing a connection between a first terminal 111 and a second terminal 112 through WebRTC service 122, when user A creates dynamic content (such as an application screen) on the shared canvas of the first terminal 111, the first terminal 111 transmits the multimedia stream data corresponding to the dynamic content to the second terminal 112 based on the SRTP protocol, so that the second terminal 112 can synchronously display the dynamic content on the shared canvas.
[0044] Signaling service 123 is used to coordinate communication between different terminals. In some embodiments, WebRTC service 122 requires the first terminal 111 and the second terminal 112 to exchange session control messages, media metadata (such as codecs and codec settings, bandwidth and media type), and key data through signaling service 123 in order to establish a connection between the first terminal 111 and the second terminal 112.
[0045] In some embodiments, the signaling service 123 can also be used to exchange control operations for dynamic content. For example, when the first terminal 111 shares the game screen of a game application with the second terminal 112 through a shared canvas, if the second terminal 112 has control permissions over the game screen, the parameters corresponding to the control operation of user B for the game screen can be transmitted to the first terminal 111 through the signaling service 123, so that the first terminal 111 responds to the control operation on the shared canvas, thereby enabling user B to remotely control the dynamic content on user A's shared canvas.
[0046] It should be noted that this application only uses three users as an example to illustrate the content sharing method, but this application does not impose any restrictions on the number of people sharing across multiple devices or the corresponding number of terminals. For example, the number of people sharing across multiple devices and the corresponding number of terminals can also be 4, 5, 6, etc., and such variations are all within the protection scope of this application.
[0047] It should be noted that the above embodiments only illustrate the general architecture of the implementation environment. The system may also include more or fewer components, or combine certain components. This embodiment does not limit this.
[0048] See Figure 2 , Figure 2 This is a flowchart of a content sharing method provided in an exemplary embodiment of this application. The method is applied to a first sharing end and may include the following steps:
[0049] Step 201: Display a shared canvas, which is used for content sharing between a first sharing end and at least one second sharing end.
[0050] A shared canvas can be a canvas provided by a canvas application, and the shared content in the shared canvas can be displayed synchronously on a first sharing end and at least one second sharing end.
[0051] The first sharing terminal is the creation terminal of the shared content, and at least one second sharing terminal is the receiving terminal of the shared content. For example, when user A embeds the game screen corresponding to the game application on the shared canvas of the first terminal 111 and shares the game screen with the second terminal 112 and the third terminal 113, the first terminal 111 is the first sharing terminal, and the second terminal 112 and the third terminal 113 are the second sharing terminals.
[0052] It should be noted that the first sharing end and the second sharing end are relative. When the same terminal creates dynamic content and shares it with other terminals, it is called the first sharing end. When it receives dynamic content shared by other terminals, it can be called the second sharing end.
[0053] In some embodiments, the shared content in the shared canvas includes static content and dynamic content.
[0054] Optionally, static content includes content that is not part of the multimedia stream data, such as file content and graffiti content.
[0055] Optionally, dynamic content includes content corresponding to multimedia stream data such as application screens, camera feeds, online videos, or live web broadcasts.
[0056] Step 202: In response to the dynamic content addition operation on the shared canvas, a first display area is created in the shared canvas. The first display area is used to display the first dynamic content shared by the first sharing terminal.
[0057] The dynamic content addition operation is used to add dynamic content to the shared canvas. Optionally, the dynamic content addition operation can be triggered via keyboard shortcuts, specific gestures, or buttons.
[0058] The first display area is used to display the first dynamic content shared by the first sharing terminal. Optionally, the first display area is located in a blank space in the shared canvas that does not contain other shared content.
[0059] The first dynamic content is the dynamic content shared by the first sharing terminal. Optionally, the first dynamic content can be content corresponding to real-time multimedia stream data such as application screens, camera footage, network video, or live webcast.
[0060] In some embodiments, when the canvas application is running in the foreground, the first sharing end can run multiple processes corresponding to dynamic content in the background and display the images of one or more of the dynamic content in the shared canvas through the first display area.
[0061] In some embodiments, the first sharing terminal may create one or more first display areas to display the same or different first dynamic content. For example, the first sharing terminal may create three first display areas on a shared canvas to display the game screen corresponding to the game application, the live screen corresponding to live stream 1, and live stream 2, respectively.
[0062] See Figure 3 , Figure 3 This is a schematic diagram illustrating the creation of a first display area provided in an exemplary embodiment of this application.
[0063] like Figure 3 As shown, a shared canvas is displayed in the first sharing terminal 31. A content adding control 32 is displayed in the shared canvas, used to add shared content to the shared canvas.
[0064] The sub-menu of the content adding control 32 includes different types of controls for adding different types of shared content. Among them, the file adding control 321 is used to add static content such as local files, the image adding control 322 is used to add static content such as albums and pictures, the doodle adding control 323 is used to add static content such as doodles and text, and the dynamic adding control 324 is used to add dynamic content such as application screens, camera screens, network videos, or live web streaming.
[0065] In response to a triggering operation (such as a click operation) on the dynamically added control 324, a sharing selection bar 33 is displayed in the shared canvas for the user to select the dynamic content to be shared.
[0066] The sharing bar 33 can include multiple dynamic selection controls, each used to select different dynamic content running in the background of the first sharing terminal. For example, the game selection control 331 is used to select the game screen corresponding to the game application running in the background of the first sharing terminal; the camera selection control 332 is used to select the camera screen corresponding to the camera application running in the background of the first sharing terminal; the first live stream selection control 333 is used to select the screen content corresponding to network live stream 1 running in the background of the first sharing terminal; and the second live stream selection control 333 is used to select the screen content corresponding to network live stream 2 running in the background of the first sharing terminal.
[0067] In response to a trigger operation (such as a click operation) on the game selection control 331, the first sharing terminal 31 creates a first display area 34 in the shared canvas. The first display area 34 is used to display the first dynamic content (i.e., the game screen corresponding to the game application) shared by the first sharing terminal 31.
[0068] Step 203: Share the multimedia stream data corresponding to the first dynamic content to the second sharing terminal, so that the second sharing terminal displays the first dynamic content in the first display area of the shared canvas based on the multimedia stream data.
[0069] In some embodiments, for different types of first dynamic content, the first sharing terminal can share the multimedia stream data corresponding to the first dynamic content to the second sharing terminal in different ways. For an explanation of how the first sharing terminal shares the first dynamic content to the second sharing terminal in different ways, please refer to [link to documentation / reference]. Figure 5 The relevant descriptions will not be repeated here.
[0070] See Figure 4 , Figure 4 This is a schematic diagram illustrating the synchronous display of first dynamic content on a first sharing terminal and a second sharing terminal, provided in an exemplary embodiment of this application.
[0071] like Figure 4 As shown, a first display area 411 is displayed in the shared canvas of the first sharing terminal 41, which is used to display the first dynamic content corresponding to the game application. In the shared canvases of the second sharing terminal 42 (smartphone) and the second sharing terminal 43 (laptop), corresponding first display areas 421 and first display areas 431 are displayed respectively, which are used to share the first dynamic content shared by the first sharing terminal 41.
[0072] It should be noted that the same first dynamic content is displayed in the shared canvas on different sharing terminals, but the scaling ratio, field of view, etc. of the shared canvas can be determined by the different sharing terminals through operations such as panning or moving. For example, user C can change the field of view by panning the shared canvas so that the first display area 431 is displayed in the center of the field of view of the second sharing terminal 43 (laptop).
[0073] In summary, by creating a first display area in a shared canvas to display the first dynamic content, and sharing the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, it is possible to synchronously display the first dynamic content in the shared canvas of the second sharing terminal, thereby achieving multi-terminal synchronous display of dynamic content.
[0074] When users add dynamic content to the shared canvas, they can select different types of dynamic content to add. For example, dynamic content may include application screenshots, camera feeds, web videos, or live web streams.
[0075] In some embodiments, the first sharing terminal may share the multimedia stream data corresponding to the first dynamic content with the second sharing terminal based on the content type of the first dynamic content and using the sharing method corresponding to the content type, wherein different content types correspond to different sharing methods.
[0076] See Figure 5 , Figure 5 This is a flowchart illustrating how a first sharing terminal shares first dynamic content with a second sharing terminal in different ways, according to an exemplary embodiment of this application. The flowchart includes the following steps.
[0077] Step 501: Display a shared canvas, which is used for content sharing between the first sharing end and at least one second sharing end.
[0078] Step 502: In response to the dynamic content addition operation on the shared canvas, a first display area is created in the shared canvas. The first display area is used to display the first dynamic content shared by the first sharing terminal.
[0079] Step 503: If the first dynamic content is an application, the application screen is encoded to obtain multimedia stream data, and the multimedia stream data is transmitted to the second sharing end.
[0080] Optionally, the application can be a system application or a third-party application other than the canvas application. Examples include various types of applications such as games, chat, social networking, shopping, audio / video, browsers, clocks, and calendars.
[0081] In some embodiments, the first sharing terminal can capture the application screen corresponding to the application and encode the application screen according to the encoding parameters to obtain multimedia stream data.
[0082] Optional encoding parameters include frame rate, scanning method, resolution, number of pixels, aspect ratio, pixel aspect ratio, etc.
[0083] The encoding parameters can be determined based on various factors. In some embodiments, the first sharing terminal can determine the encoding parameters based on the network status of both the first and second sharing terminals; and encode the application screen based on the encoding parameters to obtain multimedia stream data. For example, when the network status of either the first or second sharing terminal is poor, the first sharing terminal can encode the application screen based on encoding parameters with lower resolution to improve the smoothness of multimedia stream data transmission.
[0084] In other embodiments, encoding parameters can be determined based on the amount of dynamic content on the shared canvas; and the application screen can be encoded based on the encoding parameters to obtain multimedia stream data. For example, if the shared canvas already has multiple display areas corresponding to dynamic content, the first sharing end can encode the application screen based on encoding parameters with a lower frame rate to reduce the dynamic content load carried by the shared canvas.
[0085] To transmit media stream data, in some embodiments, the first sharing end can establish a connection with the second sharing end via the WebRTC service and transmit the encoded multimedia stream data of the application screen to the second sharing end. Since the WebRTC service uses the SRTP protocol, it can meet the requirements for low-latency, high-bandwidth real-time audio and video transmission.
[0086] Step 504: When the first dynamic content is the camera image, transmit the camera video stream output by the camera to the second sharing terminal.
[0087] In some embodiments, the first sharing end can also compress the camera video stream according to compression parameters to obtain a compressed camera video stream, and then transmit the compressed camera video stream to the second sharing end.
[0088] Optional compression parameters include video format, bitrate, resolution, video aspect ratio, etc.
[0089] The compression parameters can be determined based on various factors. In some embodiments, the first sharing end can determine the compression parameters based on the network status of both the first and second sharing ends, and compress the camera video stream based on these parameters. For example, when the network status of either the first or second sharing end is poor, the first sharing end can compress the camera video stream based on compression parameters with a lower bitrate to reduce the size of the compressed camera video stream.
[0090] In other embodiments, compression parameters can be determined based on the amount of dynamic content on the shared canvas; and the camera video stream can be compressed based on these parameters to obtain a compressed camera video stream. For example, if the shared canvas already has multiple display areas corresponding to dynamic content, the first sharing end can compress the camera video stream based on compression parameters with a lower bitrate to reduce the size of the compressed camera video stream, thereby reducing the dynamic content load carried by the shared canvas.
[0091] To transmit media stream data, in some embodiments, the first sharing end can establish a connection with the second sharing end via the WebRTC service and transmit the compressed camera video stream to the second sharing end. Since the WebRTC service uses the SRTP protocol, it can meet the requirements for low-latency, high-bandwidth real-time camera video stream transmission.
[0092] Step 505: If the first dynamic content is a network video or a live network broadcast, send the video stream address of the network video or live network broadcast to the second sharing terminal so that the second sharing terminal can pull multimedia stream data based on the video stream address.
[0093] Optionally, the video stream address can be a live source based on the RTSP (Real Time Streaming Protocol), a live source based on the RTMP (Real Time Messaging Protocol), or a live source based on the HTTP (Hyper Text Transfer Protocol).
[0094] In some embodiments, the second sharing terminal can parse the video stream address, retrieve the multimedia stream data, and display the dynamic content corresponding to the multimedia stream data in the first display area of the second sharing terminal.
[0095] Optionally, the second sharing terminal displays the dynamic content corresponding to the multimedia stream data in the first display area of the second sharing terminal through the Canvas API (Canvas Application Programming Interface).
[0096] In this embodiment, the first sharing terminal shares multimedia stream data with the second sharing terminal by adopting different sharing methods corresponding to different content types of the first dynamic content. This enables the display of different types of dynamic content, such as application screens, camera screens, network videos, or live web broadcasts, on the shared canvas of the second sharing terminal, thereby achieving multi-terminal sharing of different types of dynamic content.
[0097] The first sharing terminal can not only share multimedia stream data with the second sharing terminal, but also receive multimedia stream data shared by the second sharing terminal.
[0098] In some embodiments, the shared canvas further includes a second display area. This second display area is used to display second dynamic content shared by the second sharing terminal.
[0099] The second dynamic content is dynamic content shared by the second sharing terminal. Optionally, the second dynamic content can be real-time multimedia stream data content such as application screens, camera feeds, network video, or live webcasts.
[0100] See Figure 6 , Figure 6 This is a schematic diagram of a first display area and a second display area provided in an exemplary embodiment of this application.
[0101] like Figure 6As shown, the shared canvas of the first sharing terminal 61 displays a first display area 611, a second display area 621, and a second display area 622. The first display area 611 displays the game screen of the game application corresponding to user A in the first sharing terminal 61, i.e., the game screen from user A's perspective; the second display area 621 displays the game screen of the game application corresponding to user B in the second sharing terminal, i.e., the game screen from user B's perspective; and the second display area 622 displays the game screen of the game application corresponding to user C in the second sharing terminal, i.e., the game screen from user C's perspective.
[0102] like Figure 6 As shown, multiple dynamic content items can be displayed simultaneously in the shared canvas. Users can also use sound controls to play or mute the audio stream data corresponding to the dynamic content. For example, when user A is playing a game in the first display area 611 of the shared canvas, they may need to refer to the game screens in the second display areas 621 and 622, but do not need to play the audio corresponding to those areas. Therefore, the user can choose to mute the sound controls 621a and 622a corresponding to the second display area 621 and 622a, and mute the sound control 611a corresponding to the first display area 611, while keeping it playing.
[0103] In this embodiment, the first sharing terminal creates a second display area to display the second dynamic content shared by the second sharing terminal, which enables users to view the application screen from different perspectives at the same time, thereby improving operation efficiency; at the same time, the audio corresponding to the dynamic content specified by the user can be played through the sound control to avoid the audio of other dynamic content from interfering with the user.
[0104] The first sharing terminal can control the second dynamic content in the second display area, thereby realizing remote control of the second dynamic content. For example, if user B shares the application screen of a map application with user A, user A can directly operate the map application in the shared canvas, such as searching for locations and querying routes.
[0105] In some embodiments, in response to a control operation on the second dynamic content in the second display area, the first sharing terminal sends a control command to the second sharing terminal, so that the second sharing terminal controls the second dynamic content based on the control command.
[0106] Optionally, the first sharing terminal and the second sharing terminal can transmit control commands through a signaling service. For example, when user A performs a control operation on the second dynamic content in the second display area of the first sharing terminal, the first sharing terminal transmits the control command to the signaling service, which then transmits the control command to the second sharing terminal.
[0107] See Figure 7 , Figure 7 This is a schematic diagram illustrating how a first sharing terminal controls second dynamic content in a second display area, provided in an exemplary embodiment of this application.
[0108] like Figure 7 As shown, a second display area 721 is displayed on the shared canvas of the first sharing terminal 71 corresponding to user A. The second dynamic content in the second display area 721 is a map application created by user B.
[0109] When user A wants to navigate to a map, user A can perform control operations in the second display area 721 of the first sharing terminal 71. For example, user A can click on the location of the navigation control 721a in the second display area 721. The first sharing terminal transmits the control command corresponding to the click operation to the second sharing terminal through a signaling service. The control command includes control parameters (such as click location, click duration, etc.). Based on the control command, the second sharing terminal restores user A's click operation in the second display area of the second sharing terminal, so that the second sharing terminal clicks on the navigation control 721a in the second display area, thereby changing the second dynamic content to a map screen for route navigation.
[0110] In this embodiment, when the first sharing terminal receives a control operation on the second dynamic content in the second display area, the first sharing terminal can send a control command to the second sharing terminal, enabling the second sharing terminal to control the second dynamic content based on the control command, thereby realizing remote control of the content shared by the first sharing terminal and the second sharing terminal.
[0111] In some embodiments, the shared canvas displayed on each sharing terminal supports size adjustment, and the size of the shared content in the shared canvas is adjusted synchronously with the shared canvas.
[0112] In some embodiments, different sharing devices can adjust the size of the shared canvas according to their respective required size adjustment parameters, thus allowing different sharing devices to have different views of the shared canvas. For example... Figure 4 As shown, for the same first dynamic content, user B, who is not interested, can adjust the first display area 421 to a smaller size through scaling operations on the second sharing terminal 42; while user C, who is interested in the first dynamic content, can adjust the first display area 431 to a larger size through scaling operations on the second sharing terminal 43.
[0113] During the process of sending control commands from the first sharing terminal to the second sharing terminal, since the sizes of the second display areas in the first and second sharing terminals may differ, the second sharing terminal cannot directly reproduce the control operation corresponding to the control parameters in the second display area. Instead, it needs to convert the control parameters based on the size of the second display area so that the converted control parameters are suitable for the second sharing terminal.
[0114] In some embodiments, in response to a control operation on second dynamic content in a second display area, a first control parameter for the control operation in the second display area is determined.
[0115] The first control parameter is the control parameter corresponding to the control operation obtained from the first shared terminal.
[0116] Taking a click operation as an example, the first control parameter may include the click location and the click duration.
[0117] Taking a sliding operation as an example, the first control parameter may include the sliding position and the sliding length.
[0118] In some embodiments, the first control parameter can be transformed based on the first region size and the second region size to obtain the second control parameter, so that the second control parameter is adapted to the second shared terminal.
[0119] Wherein, the first area size is the size of the second display area in the first shared terminal, and the second area size is the size of the second display area in the second shared terminal.
[0120] The implementation of the transformation of the first control parameter may include at least one of the following methods:
[0121] (1) The first sharing terminal sends a control instruction containing the first control parameter and the first area size to the second sharing terminal, so that the second sharing terminal performs parameter conversion on the first control parameter based on the first area size and the second area size, and controls the second dynamic content based on the converted second control parameter.
[0122] See Figure 8 , Figure 8 This is a timing diagram of the conversion of the first control parameter provided in an exemplary embodiment of this application.
[0123] like Figure 8 As shown, the first sharing terminal can send the first control parameters and the first area size to the second sharing terminal, which then performs the conversion. This method includes the following steps:
[0124] Step 8.1.1: The first sharing terminal sends a control command containing the first control parameters and the first area size to the signaling service.
[0125] Step 8.1.2: The signaling service sends a control command containing the first control parameters and the first area size to the second sharing terminal.
[0126] Step 8.1.3: The second shared terminal performs parameter conversion on the first control parameter based on the first region size and the second region size, and controls the second dynamic content based on the converted second control parameter.
[0127] Taking the sliding operation as an example, the first control parameter includes the sliding length in the second display area of the first shared terminal, such as 50px.
[0128] Assuming the size of the first area is 1000px × 2000px, the first sharing terminal can send a control command to the second sharing terminal containing a sliding length of 50px and the size of the first area of 1000px × 2000px.
[0129] Assuming the second region has a size of 2000px × 4000px, the second sharing terminal performs parameter transformation on the first control parameter based on the first and second region sizes to obtain the second control parameter (i.e., the sliding length in the second display area of the second sharing terminal is 100px). Therefore, the second sharing terminal slides 100px in the second display area to reproduce the sliding operation.
[0130] (2) The first sharing terminal performs parameter conversion on the first control parameter based on the first area size and the second area size to obtain the second control parameter; and sends a control instruction containing the second control parameter to the second sharing terminal so that the second sharing terminal controls the second dynamic content based on the second control parameter.
[0131] In some embodiments, since the first sharing terminal and the second sharing terminal can exchange information through signaling services, the second sharing terminal can send the second area size to the first sharing terminal so that the first sharing terminal can perform parameter conversion on the first control parameter based on the first area size and the second area size to obtain the second control parameter.
[0132] like Figure 8 As shown, this method includes the following steps:
[0133] Step 8.2.1: The second sharing end sends the second area size to the signaling service.
[0134] Step 8.2.2: The signaling service transmits the second area size to the first sharing terminal.
[0135] Step 8.2.3: The first shared terminal performs parameter transformation on the first control parameter based on the first region size and the second region size to obtain the second control parameter.
[0136] Step 8.2.4: The signaling service sends a control command containing the second control parameters to the second sharing terminal.
[0137] Step 8.2.5: The second sharing terminal controls the second dynamic content based on the second control parameters.
[0138] Taking the sliding operation as an example, the first control parameter includes the sliding length in the second display area of the first shared terminal, such as 50px.
[0139] Assuming the second region is 2000px × 4000px, the second sharing terminal can send the size of the second region to the first sharing terminal via signaling service.
[0140] Assuming the size of the first area is 1000px × 2000px, the first sharing terminal can perform parameter transformation on the first control parameter based on the size of the first area and the size of the second area to obtain the second control parameter, that is, the sliding length in the second display area of the second sharing terminal is 100px.
[0141] The first sharing terminal sends the second control parameter to the second sharing terminal, so that the second sharing terminal can slide 100px in the second display area to reproduce the sliding operation.
[0142] In some embodiments, the first control parameter includes a first coordinate, wherein the first coordinate refers to the absolute coordinate within the second display area in the first shared terminal.
[0143] Taking a click operation as an example, the first control parameter includes the first coordinates in the second display area of the first shared terminal, such as absolute coordinates (100px, 200px).
[0144] In some embodiments, the first sharing terminal can determine a coordinate adjustment ratio based on the first area size and the second area size; and transform the first coordinates based on the coordinate adjustment ratio to obtain the second coordinates. The second coordinates refer to the absolute coordinates within the second display area of the second sharing terminal.
[0145] For example, assuming the first area is 1000px × 2000px and the second area is 2000px × 4000px, the coordinate adjustment ratio can be determined to be 1:2. Based on this ratio, the first coordinates are transformed to obtain the second coordinates. That is, the click position in the second display area of the second shared terminal is the absolute coordinates (200px, 400px). Therefore, the second shared terminal restores the click operation at the (200px, 400px) position in the second display area to realize the click on the second dynamic content.
[0146] In this embodiment, by converting the first control parameter to obtain the second control parameter, the second sharing terminal can control the second dynamic content based on the second control parameter. This enables remote control of the second dynamic content even when the sizes of the second display areas in the first and second sharing terminals are inconsistent, thus improving the accuracy of the control operation.
[0147] In some embodiments, permission management can be used to grant different permissions (e.g., display permissions, control permissions, etc.) to at least one second sharing terminal for the first dynamic content.
[0148] Optionally, users on the first sharing end can manage the permissions of different second sharing ends for the first dynamic content through a permission management list.
[0149] Optionally, the first sharing terminal can automatically determine the permissions associated with the role type of the user on the second sharing terminal. For example, a user with the role type of administrator will automatically have control permissions on the second sharing terminal.
[0150] In some embodiments, the first sharing terminal may receive an authorization operation on the second sharing terminal. The authorization operation is used to grant the second sharing terminal permissions to the first dynamic content, wherein the permissions include at least one of display permissions and control permissions.
[0151] If the second sharing terminal has display permissions, the first sharing terminal can share the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, so that the second sharing terminal can display the first dynamic content in the second display area of the shared canvas.
[0152] In some embodiments, permission management can be implemented through server relay. For example, a first sharing terminal can share multimedia stream data corresponding to a first dynamic content with a second sharing terminal. First, the multimedia stream data needs to be sent to the server. If the second sharing terminal has display permissions, the server will then send the multimedia stream data to the second sharing terminal.
[0153] Control parameters corresponding to the control operations performed on the first dynamic content in the second sharing terminal can be sent to the server. If the second sharing terminal has control permissions, the server will then send the control parameters back to the first sharing terminal, which will then recreate the corresponding control operation, thereby enabling the second sharing terminal to remotely control the first dynamic content. If the second sharing terminal does not have control permissions, the server will either not send control parameters to the first sharing terminal, or the server will still send control parameters to the first sharing terminal, but the first sharing terminal will not respond.
[0154] The authorization operation for the second sharing terminal can be performed either by the first sharing terminal actively, or by the second sharing terminal sending a permission request to the first sharing terminal, which then responds to the permission request to execute the operation.
[0155] See Figure 9 , Figure 9 This is a schematic diagram illustrating the permission management of a first sharing terminal to a second sharing terminal provided in an exemplary embodiment of this application.
[0156] like Figure 9 As shown, a first display area 911 is displayed in the shared canvas of the first sharing terminal 91. The first display area 911 is used to display the first dynamic content (game application) shared by the first sharing terminal 91.
[0157] Upon receiving a call to the permission management list, the first sharing terminal 91 displays the permission management list 912.
[0158] Optionally, the call-up operation can be performed using shortcut keys, specific gestures, voice commands, or buttons.
[0159] The permission management list 912 is used to manage permissions for at least one second shared terminal, such as display permissions and control permissions for the first dynamic content.
[0160] like Figure 9 As shown, user A, through permission management list 912, grants user C display and control permissions for the first dynamic content, but does not grant user B display and control permissions. Therefore, the first dynamic content shared by the first sharing terminal 91 is not displayed in the first display area 921 of the second sharing terminal 92 corresponding to user B; and the first dynamic content shared by the first sharing terminal 91 is displayed in the first display area 931 of the second sharing terminal 93 corresponding to user C.
[0161] In some embodiments, the first sharing terminal can revoke the permissions held by the second sharing terminal. For example, the permission of user C to display the first dynamic content can be revoked.
[0162] In some embodiments, the first sharing terminal receives a permission revocation operation on the second sharing terminal. The permission revocation operation is used to revoke the second sharing terminal's permissions to the first dynamic content, and the permissions include at least one of display permissions and control permissions.
[0163] Optionally, the user of the first sharing terminal can perform a permission revocation operation through the permission management list. For example, user A can revoke user C's control permission for the first dynamic content through the permission management list 912, so that the control operation received in the first display area 931 of the second sharing terminal corresponding to user C will not be responded to by the first sharing terminal.
[0164] In some embodiments, at any given time, only one sharing terminal has control over the first dynamic content. For example, at one time, only the first sharing terminal 91 corresponding to user A has control over the first dynamic content; at another time, only the second sharing terminal 93 corresponding to user C has control over the first dynamic content.
[0165] In one possible scenario, if a first sharing terminal authorizes one of the second sharing terminals to have control permissions over the first dynamic content, and another second sharing terminal also has control permissions over the first dynamic content, then the first sharing terminal automatically revokes the permissions of the other second sharing terminal.
[0166] For example, at time T1, user A grants user C display and control permissions for the first dynamic content, but does not grant user B display and control permissions. At time T2, user A grants user B display and control permissions for the first dynamic content. Then, at time T2, the first sharing terminal automatically revokes the control permissions of the second sharing terminal corresponding to user C, ensuring that only one sharing terminal (the second sharing terminal corresponding to user B) can perform control operations at time T2. This avoids interference caused by simultaneous operations from multiple parties and improves the accuracy of control operations.
[0167] Similarly, for the second dynamic content within the second display area, the second sharing terminal can also grant the first sharing terminal display or control permissions for the second dynamic content.
[0168] In some embodiments, when the first sharing terminal has control permissions over the second dynamic content, in response to a control operation on the second dynamic content in the second display area, a control command is sent to the second sharing terminal, enabling the first sharing terminal to remotely control the second dynamic content. In some embodiments, when the first sharing terminal does not have control permissions over the second dynamic content, the first sharing terminal may display a prompt message indicating that it does not have operation permissions in the shared canvas, and the first sharing terminal will not send control commands to the second sharing terminal, so that the second sharing terminal will not receive control operations from the first sharing terminal, thereby realizing the management of control permissions for the second dynamic content.
[0169] In this embodiment, by managing the permissions of the first dynamic content, the second sharing terminal can display the first dynamic content in the first display area when it has display permissions, and perform control operations on the first dynamic content in the first display area when it has control permissions, thereby reasonably managing the permissions of multiple sharing terminals in the shared canvas.
[0170] See Figure 10, Figure 10 This is a schematic diagram of a shared canvas provided in an exemplary embodiment of this application.
[0171] like Figure 10 As shown, the shared canvas of the first sharing terminal 1001 displays a second display area 1013, which is used to display the second dynamic content (map application) shared by the second sharing terminal corresponding to user B.
[0172] The shared canvas of the first sharing terminal 1001 also displays a first static area 1011 and a second static area 1012. The first static area 1011 is used to display static content (a document about driving routes) shared by the second sharing terminal corresponding to user C, and the second static area 1012 is used to display static content (a webpage link about the XXX campsite guide) shared by the first sharing terminal corresponding to user A.
[0173] In some embodiments, the first sharing terminal may display a creator identifier on the periphery of each sharing area to reflect the creator of the shared content in that sharing area. For example, the periphery of the second display area 1013 displays an avatar identifier 1013a corresponding to user B to reflect that the second dynamic content in the second display area 1013 was created and shared by user B. Similarly, the periphery of the first static area 1011 may display an avatar identifier corresponding to user C, and the periphery of the second static area 1012 may display an avatar identifier corresponding to user A. Through the creator identifier, users of multiple sharing terminals can clearly know the creator corresponding to each shared content.
[0174] In some embodiments, a comment area is displayed on the shared canvas, allowing users on multiple sharing terminals to post comments or annotations. In some embodiments, the comment area corresponds to the shared content, allowing users on multiple sharing terminals to comment on the shared content. For example, a comment area 1013b is displayed around the second display area 1013, and the comment area 1013b is used by users on multiple sharing terminals to comment on the second dynamic content in the second display area 1013.
[0175] In some embodiments, users of multiple sharing terminals can also conduct real-time video or real-time audio through a shared canvas. For example, when user A clicks on the video control 1021 or the audio control 1022, the first sharing terminal sends a video or audio request to the other two second sharing terminals. If the other second sharing terminals accept the request, the first sharing terminal and the second sharing terminals establish a connection through the WebRTC service to realize the transmission of real-time video stream data or audio stream data.
[0176] Please refer to Figure 11 , Figure 11 This is a structural block diagram of a content display device provided in an exemplary embodiment of this application. The device includes:
[0177] Display module 1101 is used to display a shared canvas, which is used for content sharing between the first sharing terminal and at least one second sharing terminal;
[0178] Add module 1102 is used to create a first display area in the shared canvas in response to the dynamic content addition operation of the shared canvas. The first display area is used to display the first dynamic content shared by the first sharing terminal.
[0179] The sharing module 1103 is used to share the multimedia stream data corresponding to the first dynamic content with the second sharing terminal, so that the second sharing terminal displays the first dynamic content in the first display area of the shared canvas based on the multimedia stream data.
[0180] Optional, shared module 1103, used for:
[0181] Based on the content type of the first dynamic content, the multimedia stream data corresponding to the first dynamic content is shared to the second sharing terminal using the sharing method corresponding to the content type, wherein different content types correspond to different sharing methods.
[0182] Optional, shared module 1103, used for:
[0183] When the first dynamic content is an application, the application screen of the application is encoded to obtain the multimedia stream data, and the multimedia stream data is transmitted to the second sharing end;
[0184] When the first dynamic content is a camera view, the camera video stream output by the camera is transmitted to the second sharing terminal;
[0185] If the first dynamic content is a network video or a live network broadcast, the video stream address of the network video or the live network broadcast is sent to the second sharing terminal so that the second sharing terminal can pull the multimedia stream data based on the video stream address.
[0186] Optional, shared module 1103, used for:
[0187] Encoding parameters are determined based on the network status of the first sharing terminal and the second sharing terminal; the application screen of the application is encoded based on the encoding parameters to obtain the multimedia stream data; or,
[0188] Based on the amount of dynamic content in the shared canvas, encoding parameters are determined; based on the encoding parameters, the application screen of the application is encoded to obtain the multimedia stream data.
[0189] Optional, shared module 1103, used for:
[0190] Compression parameters are determined based on the network status of the first and second sharing terminals; the camera video stream is compressed based on the compression parameters to obtain a compressed camera video stream; the compressed camera video stream is then transmitted to the second sharing terminal; or...
[0191] Based on the amount of dynamic content in the shared canvas, compression parameters are determined; the camera video stream is compressed based on the compression parameters to obtain a compressed camera video stream; the compressed camera video stream is then transmitted to the second sharing end.
[0192] Optionally, the shared canvas further includes a second display area, which is used to display the second dynamic content shared by the second sharing terminal; the sharing module 1103 is used for:
[0193] In response to a control operation on the second dynamic content in the second display area, a control command is sent to the second sharing terminal so that the second sharing terminal controls the second dynamic content based on the control command.
[0194] Optionally, the shared canvas displayed on each sharing terminal supports size adjustment, and the size of the shared content in the shared canvas is adjusted synchronously with the shared canvas; the sharing module 1103 is used for:
[0195] In response to a control operation on the second dynamic content in the second display area, a first control parameter of the control operation in the second display area is determined; a control instruction containing the first control parameter and a first area size is sent to the second sharing terminal, so that the second sharing terminal performs parameter conversion on the first control parameter based on the first area size and the second area size, and controls the second dynamic content based on the converted second control parameter;
[0196] or,
[0197] In response to a control operation on the second dynamic content in the second display area, a first control parameter of the control operation in the second display area is determined; based on the first area size and the second area size, the first control parameter is converted to obtain a second control parameter; the control instruction containing the second control parameter is sent to the second sharing terminal so that the second sharing terminal controls the second dynamic content based on the second control parameter;
[0198] Wherein, the first area size is the size of the second display area in the first shared terminal, and the second area size is the size of the second display area in the second shared terminal.
[0199] Optionally, the first control parameter includes a first coordinate, which is an absolute coordinate within the second display area of the first shared terminal; the sharing module 1103 is used for:
[0200] Based on the dimensions of the first region and the second region, determine the coordinate adjustment ratio;
[0201] Based on the coordinate adjustment ratio, the first coordinate is transformed to obtain the second coordinate, which is the absolute coordinate within the second display area of the second shared terminal.
[0202] Optional, shared module 1103, used for:
[0203] The system receives an authorization operation for the second sharing terminal, the authorization operation being used to grant the second sharing terminal permissions to the first dynamic content, the permissions including at least one of display permissions and control permissions;
[0204] The step of sharing the multimedia stream data corresponding to the first dynamic content with the second sharing terminal includes:
[0205] If the second sharing terminal has the display permission, the multimedia stream data corresponding to the first dynamic content is shared with the second sharing terminal.
[0206] Optional, shared module 1103, used for:
[0207] The system receives a permission revocation operation on the second sharing terminal. The permission revocation operation is used to revoke the second sharing terminal's permissions to the first dynamic content. The permissions include at least one of display permissions and control permissions.
[0208] It should be noted that the apparatus provided in the above embodiments is only an example of the division of the above functional modules. In practical applications, the above functions can be assigned to different functional modules as needed, that is, the internal structure of the apparatus can be divided into different functional modules to complete all or part of the functions described above. In addition, the apparatus and method embodiments provided in the above embodiments belong to the same concept, and their implementation process can be found in the method embodiments, which will not be repeated here.
[0209] Please refer to Figure 12 , Figure 12 This is a structural block diagram of a terminal provided in an exemplary embodiment of this application.
[0210] The terminal can execute the content sharing method described in the above embodiments. The terminal can be a terminal device with a display screen, such as a smartphone, laptop, tablet, navigation device, smart TV, etc. The terminal may also be referred to as a user equipment, portable terminal, or other names. The terminal may include one or more of the following components: processor 1210 and memory 1220.
[0211] Optionally, the processor 1210 connects various parts within the electronic device using various interfaces and lines. It executes various functions and processes data by running or executing instructions, programs, code sets, or instruction sets stored in the memory 1220, and by calling data stored in the memory 1220. Optionally, the processor 1210 can be implemented using at least one hardware form of Digital Signal Processing (DSP), Field-Programmable Gate Array (FPGA), or Programmable Logic Array (PLA). The processor 1210 can integrate one or more of the following: Central Processing Unit (CPU), Graphics Processing Unit (GPU), Neural-network Processing Unit (NPU), and baseband chip. Specifically, the CPU primarily handles the operating system, user interface, and applications; the GPU is responsible for rendering and drawing the content required for display on the touch screen; the NPU implements artificial intelligence (AI) functions; and the baseband chip handles wireless communication. It is understandable that the aforementioned baseband chip may not be integrated into the processor 1210, but may be implemented using a separate chip.
[0212] The memory 1220 may include random access memory (RAM) or read-only memory (ROM). Optionally, the memory 1220 may include a non-transitory computer-readable storage medium. The memory 1220 may be used to store instructions, programs, code, code sets, or instruction sets. The memory 1220 may include a program storage area and a data storage area, wherein the program storage area may store instructions for implementing an operating system, instructions for at least one function (such as touch function, sound playback function, image playback function, etc.), instructions for implementing the various method embodiments described below, etc.; the data storage area may store data created according to the use of the electronic device (such as audio data, phone book, etc.).
[0213] In addition, those skilled in the art will understand that the structure of the electronic device shown in the above figures does not constitute a limitation on the electronic device. The electronic device may include more or fewer components than shown, or combine certain components, or have different component arrangements.
[0214] This application also provides a computer-readable storage medium storing at least one instruction, which is loaded and executed by a processor to implement the method provided in the above embodiments. Optionally, the computer-readable storage medium may include ROM, RAM, solid-state drives (SSDs), or optical discs, etc. The RAM may include resistive random access memory (ReRAM) and dynamic random access memory (DRAM).
[0215] This application also provides a computer program product or computer program that includes computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the methods provided in the various optional implementations of the above aspects.
[0216] The above description is merely an optional embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
Claims
1. A content sharing method, characterized in that, The method is used on a first sharing terminal, and the method includes: A shared canvas is displayed in the canvas application running in the foreground. The shared canvas is used for content sharing between the first sharing terminal and at least one second sharing terminal. The shared canvas displays a content adding control. The sub-menu of the content adding control includes different types of controls for adding different types of shared content. The content adding control includes a dynamically added control. In response to the triggering operation of the dynamically added control, a selection sharing bar is displayed in the shared canvas, and different dynamic selection controls in the selection sharing bar are used to select different dynamic content running in the background of the first sharing terminal; In response to the triggering operation of the dynamic selection control corresponding to the first dynamic content, a first display area is created in the shared canvas. The first sharing terminal runs the first dynamic content in the background, and the first display area is used to display the first dynamic content shared by the first sharing terminal. Different first display areas are used to display different first dynamic content. The dynamic content is the content corresponding to multimedia stream data. The dynamic content includes the application screen of the application, the camera screen or the network video. When the first dynamic content is the application screen of an application, the application screen of the application is encoded to obtain the multimedia stream data, and the multimedia stream data is transmitted to the second sharing end. When the first dynamic content is a camera view, the camera video stream output by the camera is transmitted to the second sharing terminal; When the first dynamic content is a network video, the video stream address of the network video is sent to the second sharing terminal so that the second sharing terminal can pull the multimedia stream data based on the video stream address. The second sharing terminal is used to display the first dynamic content in the first display area of the shared canvas based on the multimedia stream data. The same first dynamic content is displayed in the same first display area of different sharing terminals, and the scaling ratio and field of view of the shared canvas in different sharing terminals are determined by the different sharing terminals based on the received panning operation, moving operation or scaling operation.
2. The method according to claim 1, characterized in that, Encoding the application screen of the application to obtain the multimedia stream data includes at least one of the following: Encoding parameters are determined based on the network status of the first sharing terminal and the second sharing terminal; the application screen of the application is encoded based on the encoding parameters to obtain the multimedia stream data; or, The encoding parameters are determined based on the amount of dynamic content on the shared canvas. The application screen of the application is encoded based on the encoding parameters to obtain the multimedia stream data.
3. The method according to claim 1, characterized in that, The transmission of the camera video stream output by the camera to the second sharing terminal includes at least one of the following: The compression parameters are determined based on the network status of the first sharing terminal and the second sharing terminal; the camera video stream is compressed based on the compression parameters to obtain a compressed camera video stream. The compressed camera video stream is transmitted to the second sharing terminal; or, The compression parameters are determined based on the amount of dynamic content on the shared canvas. The camera video stream is compressed based on the compression parameters to obtain a compressed camera video stream. The compressed camera video stream is transmitted to the second sharing terminal.
4. The method according to claim 1, characterized in that, The shared canvas also includes a second display area, which is used to display the second dynamic content shared by the second sharing terminal; The method further includes: In response to a control operation on the second dynamic content in the second display area, a control command is sent to the second sharing terminal so that the second sharing terminal controls the second dynamic content based on the control command.
5. The method according to claim 4, characterized in that, The shared canvas displayed on each sharing terminal supports size adjustment, and the size of the shared content in the shared canvas is adjusted synchronously with the shared canvas; The step of sending a control command to the second sharing terminal in response to a control operation on the second dynamic content in the second display area includes: In response to a control operation on the second dynamic content in the second display area, a first control parameter of the control operation in the second display area is determined; a control instruction containing the first control parameter and a first area size is sent to the second sharing terminal, so that the second sharing terminal performs parameter conversion on the first control parameter based on the first area size and the second area size, and controls the second dynamic content based on the converted second control parameter; or, In response to a control operation on the second dynamic content in the second display area, a first control parameter of the control operation in the second display area is determined; based on the first area size and the second area size, the first control parameter is converted to obtain a second control parameter; the control instruction containing the second control parameter is sent to the second sharing terminal so that the second sharing terminal controls the second dynamic content based on the second control parameter; Wherein, the first area size is the size of the second display area in the first shared terminal, and the second area size is the size of the second display area in the second shared terminal.
6. The method according to claim 5, characterized in that, The first control parameter includes a first coordinate, which is an absolute coordinate within the second display area of the first shared terminal; The step of transforming the first control parameter based on the first region size and the second region size to obtain the second control parameter includes: Based on the dimensions of the first region and the second region, determine the coordinate adjustment ratio; Based on the coordinate adjustment ratio, the first coordinate is transformed to obtain the second coordinate, which is the absolute coordinate within the second display area of the second shared terminal.
7. The method according to claim 4, characterized in that, The step of sending a control command to the second sharing terminal in response to a control operation on the second dynamic content in the second display area includes: When the first sharing terminal has control permissions over the second dynamic content, in response to the control operation of the second dynamic content in the second display area, the control command is sent to the second sharing terminal.
8. The method according to claim 1, characterized in that, The method further includes: The system receives an authorization operation for the second sharing terminal, the authorization operation being used to grant the second sharing terminal permissions to the first dynamic content, the permissions including at least one of display permissions and control permissions; The step of sharing the multimedia stream data corresponding to the first dynamic content with the second sharing terminal includes: If the second sharing terminal has the display permission, the multimedia stream data corresponding to the first dynamic content is shared with the second sharing terminal.
9. The method according to claim 8, characterized in that, The method further includes: The system receives a permission revocation operation on the second sharing terminal. The permission revocation operation is used to revoke the second sharing terminal's permissions to the first dynamic content. The permissions include at least one of display permissions and control permissions.
10. A content sharing device, characterized in that, The device is used for a first sharing terminal, and the device includes: The display module is used to display a shared canvas in a canvas application running in the foreground. The shared canvas is used for content sharing between the first sharing terminal and at least one second sharing terminal. The shared canvas displays a content adding control. The sub-menu of the content adding control includes different types of controls for adding different types of shared content. The content adding control includes a dynamically added control. An add module is used to display a selection sharing bar in the shared canvas in response to a trigger operation of the dynamically added control. The different dynamic selection controls in the selection sharing bar are used to select different dynamic content running in the background of the first sharing terminal. In response to the triggering operation of the dynamic selection control corresponding to the first dynamic content, a first display area is created in the shared canvas. The first sharing terminal runs the first dynamic content in the background, and the first display area is used to display the first dynamic content shared by the first sharing terminal. Different first display areas are used to display different first dynamic content. The dynamic content is the content corresponding to multimedia stream data. The dynamic content includes the application screen of the application, the camera screen or the network video. The sharing module is used to encode the application screen of the application when the first dynamic content is the application screen of the application, to obtain the multimedia stream data, and to transmit the multimedia stream data to the second sharing terminal. When the first dynamic content is a camera view, the camera video stream output by the camera is transmitted to the second sharing terminal; When the first dynamic content is a network video, the video stream address of the network video is sent to the second sharing terminal so that the second sharing terminal can pull the multimedia stream data based on the video stream address. The second sharing terminal is used to display the first dynamic content in the first display area of the shared canvas based on the multimedia stream data. The same first dynamic content is displayed in the same first display area of different sharing terminals, and the scaling ratio and field of view of the shared canvas in different sharing terminals are determined by the different sharing terminals based on the received panning operation, moving operation or scaling operation.
11. A terminal, characterized in that, The terminal includes a processor and a memory; the memory stores at least one instruction, which is executed by the processor to implement the content sharing method as described in any one of claims 1 to 9.
12. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores at least one instruction, which is loaded and executed by a processor to implement the content sharing method as described in any one of claims 1 to 9.
13. A computer program product, characterized in that, The computer program product includes computer instructions stored in a computer-readable storage medium; the processor of the terminal reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the terminal to perform the content sharing method as described in any one of claims 1 to 9.
Citation Information
Patent Citations
Virtual scene picture display method and device, equipment and storage medium
CN115228079A