Control method and apparatus for interactive live streaming, and electronic device and storage medium

WO2026219060A1PCT designated stage Publication Date: 2026-10-22BEIJING ZITIAO NETWORK TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2026/089450
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2025-04-14
Filing Date
2026-04-08
Publication Date
2026-10-22

Smart Images

  • Figure CN2026089450_22102026_PF_FP_ABST
    Figure CN2026089450_22102026_PF_FP_ABST
Patent Text Reader

Abstract

The present disclosure relates to the technical field of computers, and relates to a control method and apparatus for interactive live streaming, and an electronic device and a storage medium. The control method for interactive live streaming in the present disclosure comprises: in response to the occurrence of a current event in interactive live streaming in which a plurality of streamers participate, determining a current state, wherein the interactive live streaming corresponds to a plurality of states; by means of a state object corresponding to the current state and on the basis of the current event and the current state, determining a subsequent state, wherein different state objects are used for executing workflows in different states in the interactive live streaming; updating the current state to the subsequent state; and by means of a state object corresponding to the updated current state, executing a workflow corresponding to the updated current state.
Need to check novelty before this filing date? Find Prior Art

Description

Interactive live streaming control methods, devices, electronic equipment and storage media

[0001] Cross-reference to related applications

[0002] This application is based on and claims priority to Chinese application No. 202510467910.9, filed on April 14, 2025, the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] This disclosure relates to the field of computer technology, and in particular to a control method, apparatus, electronic device, and storage medium for interactive live streaming. Background Technology

[0004] When multiple streamers participate in interactive live streaming, their multiple live streams can be merged and played simultaneously on the playback device, allowing for real-time interaction between the streamers. Interactive tasks can be set within the live stream; for example, live PK (battles, competitions, etc.) can serve as an interactive task. Multiple streamers can connect via live stream to compare popularity metrics, such as the number of viewers or likes. Summary of the Invention

[0005] According to some embodiments of this disclosure, a control method for interactive live streaming is provided, comprising: responding to the occurrence of a current event in an interactive live stream involving multiple anchors, determining a current state, wherein the interactive live stream corresponds to multiple states; determining a next state based on the current event and the current state using a state object corresponding to the current state, wherein different state objects are used to execute workflows under different states in the interactive live stream; updating the current state to the next state; and executing the workflow corresponding to the updated current state using the state object corresponding to the updated current state.

[0006] According to some other embodiments of this disclosure, an interactive live streaming control device is provided, comprising: a first determining module configured to determine a current state in response to the occurrence of a current event in an interactive live stream involving multiple anchors, wherein the interactive live stream corresponds to multiple states; a second determining module configured to determine a next state based on the current event and the current state using a state object corresponding to the current state, wherein different state objects are used to execute workflows under different states in the interactive live stream; an updating module configured to update the current state to the next state; and an execution module configured to execute the workflow corresponding to the updated current state using the state object corresponding to the updated current state.

[0007] According to some embodiments of the present disclosure, an electronic device is provided, including: a processor; and a memory coupled to the processor for storing instructions, which, when executed by the processor, cause the processor to perform an interactive live streaming control method as described in any embodiment of the present disclosure.

[0008] According to some embodiments of the present disclosure, a computer-readable storage medium is provided having a computer program stored thereon, which, when executed by a processor, performs the interactive live streaming control method of any embodiment of the present disclosure.

[0009] Other features, aspects, and advantages of this disclosure will become clear from the following detailed description of exemplary embodiments with reference to the accompanying drawings. Attached Figure Description

[0010] Embodiments of this disclosure are described below with reference to the accompanying drawings. It should be understood that the drawings described below are merely illustrative of some embodiments of this disclosure and are not intended to limit the scope of this disclosure. In the drawings:

[0011] Figure 1 shows a flowchart illustrating an interactive live streaming control method according to some embodiments of the present disclosure;

[0012] Figure 2 shows a flowchart illustrating an interactive live streaming control method according to other embodiments of this disclosure;

[0013] Figure 3 shows a flowchart illustrating an interactive live streaming control method according to some embodiments of the present disclosure;

[0014] Figure 4 shows a flowchart illustrating an interactive live streaming control method according to some embodiments of the present disclosure;

[0015] Figure 5 shows a schematic diagram of the structure of an interactive live streaming control device according to some embodiments of the present disclosure;

[0016] Figure 6 shows a schematic diagram of the structure of an electronic device according to some embodiments of the present disclosure;

[0017] Figure 7 shows a schematic diagram of the structure of an electronic device according to other embodiments of the present disclosure. Detailed Implementation

[0018] The technical solutions of the embodiments of this disclosure will be clearly and completely described below with reference to the accompanying drawings. It should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein.

[0019] It should be understood that the various steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect. Unless otherwise specifically stated, the relative arrangement of steps set forth in these embodiments should be interpreted as merely exemplary and does not limit the scope of this disclosure.

[0020] As used in this disclosure, the term "comprising" and its variations are open-ended terms that include at least the following elements / features but do not exclude other elements / features, i.e., "including but not limited to". The term "based on" means "at least partially based on".

[0021] It should be noted that the concepts of "first," "second," etc., used in this disclosure are used only to distinguish different devices, modules, or units, and are not intended to define the order of functions performed by these devices, modules, or units or their interdependencies. Unless otherwise specified, the concepts of "first," "second," etc., are not intended to imply that the objects described herein must be in a given temporal, spatial, rank, or any other given order.

[0022] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".

[0023] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.

[0024] The embodiments of this disclosure are described in detail below with reference to the accompanying drawings; however, this disclosure is not limited to these specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments. Furthermore, in one or more embodiments, specific features, structures, or characteristics can be combined in any suitable manner that will be apparent to those skilled in the art from this disclosure.

[0025] The inventors discovered that the overall business logic (workflow) of interactive live streaming from initiation to termination is complex, and there may be a large amount of data interaction between multiple broadcasters. Deploying the entire business logic of interactive live streaming within the same logical container, and recording a large amount of data in the same logical container, without isolation between different parts of the business logic, can easily lead to data usage errors, resulting in misjudgments or omissions, and consequently, errors in business logic execution, causing problems such as interruptions and display errors in the interactive live stream. For example, after a broadcaster sends an invitation message, the local machine records information such as invite_uid (the inviter's ID) and battle_id (the ID of this PK). If the broadcaster receives an invitation message from another broadcaster after sending the invitation, there will be two sets of invitation message data. If these two sets of invitation message data are not used correctly in subsequent business logic, problems may occur, and in actual interactive live streaming scenarios, there is a great deal of such data.

[0026] The inventors discovered that the process of interactive live streaming, from initiation to termination, can be divided into multiple stages, which can be distinguished by different events. Based on this characteristic, this disclosure proposes a control method for interactive live streaming, dividing the live stream into multiple stages, each stage corresponding to a state, and each state corresponding to a state object. Different state objects are used to execute workflows under different states. Each state object can act as a logical container, storing the workflow under its corresponding state and processing the input data under that state. This achieves isolation of workflows under different stages and states in interactive live streaming. This makes the overall workflow clearer and more stable, avoiding complex nested logic and numerous conditional judgments. Furthermore, the workflow within each state object becomes simpler and more stable. Transitions between different states are triggered by different events, making the overall workflow more stable and preventing confusion. This improves the reliability and stability of the overall workflow execution in interactive live streaming, thereby enhancing the stability and accuracy of the live stream.

[0027] The control method for interactive live streaming disclosed herein is described below with reference to Figures 1-4. This control method for interactive live streaming can be executed by the client.

[0028] Figure 1 is a flowchart of some embodiments of the interactive live streaming control method of this disclosure. As shown in Figure 1, the method of this embodiment includes steps S102 to S108.

[0029] In step S102, the current state is determined in response to the occurrence of the current event in the interactive live broadcast involving multiple anchors.

[0030] Multiple hosts can connect and interact in an interactive live stream. The current event can be one of several predefined events within the interactive live stream. Interactive live streams are divided into multiple stages corresponding to multiple states, with different stages triggered by different events. For different types of interactive live streams, multiple stages and states, as well as multiple events, can be defined based on the characteristics of the overall process. For example, some interactive live streams include interactive tasks (e.g., PK), which requires dividing the interactive live stream into multiple stages and states based on the different processes included in the interactive task, such as start, end, score determination, and additional tasks. Some interactive live streams do not include interactive tasks (e.g., live chat), and therefore do not include the stages and states corresponding to these interactive task processes.

[0031] For example, an engine (or machine) can be configured to store the current state of an interactive live stream, and the current state can be determined in response to the sending of a current event.

[0032] In step S104, the next state is determined based on the current event and the current state, using the state object corresponding to the current state.

[0033] After the current state is determined, the current event is dispatched to the corresponding state object, which then determines the next state. Each state object can store the logic for determining the next state, and the input to this logic is the current state and the current event. The current event can be anything from a broadcaster performing an action to receiving a message from another broadcaster, and is not limited to the examples given. For instance, the current event could be an invitation message sent by a broadcaster on the client side. The current event includes corresponding data; that is, the data corresponding to the current event is only input to the state object corresponding to the current state to avoid confusion in data usage.

[0034] The state object corresponding to the current state can also store the workflow corresponding to the current state, and the workflow corresponding to the current state can be executed according to the current event.

[0035] In step S106, the current state is updated to the next state.

[0036] The current state of the interactive live stream stored in the engine can be updated to the next state.

[0037] In step S108, the workflow corresponding to the updated current state is executed through the state object corresponding to the updated current state.

[0038] A workflow, also known as a process flow or business logic, refers to a series of logical processing steps used to implement specific business functions and rules. After the current state is updated, a new state object is entered, and a new workflow is executed. The workflow stored in each state object can be configured according to the methods that need to be executed at the corresponding stage in the interactive live stream.

[0039] In the method of the above embodiments, in response to the occurrence of the current event in the interactive live broadcast, the current state can be determined. Based on the current event and the current state, the next state is determined using the state object corresponding to the current state, and the current state is then updated to the next state. The updated workflow corresponding to the current state is then executed using the updated state object. Since different state objects are used to execute workflows under different states, each state object can act as a logical container, storing the workflow under its corresponding state and processing the input data under that state. This achieves isolation of workflows at different stages and under different states in the interactive live broadcast. This makes the overall workflow clearer and more stable, avoiding complex nested logic and numerous conditional judgments. The transitions between different states are triggered by different events, making the overall workflow more stable and preventing confusion. This improves the reliability and stability of the overall workflow execution in the interactive live broadcast, thereby enhancing the stability and accuracy of the interactive live broadcast.

[0040] In the client, an entry component (e.g., a Fragment component) can be configured to receive the current event. This entry component then passes the current event to the engine, which determines the current state. The engine can then invoke different state objects to process the current event. The following describes how to determine the next state based on the current event and the current state, using the state object corresponding to the current state.

[0041] In some embodiments, the current event is determined to be a valid event corresponding to the current state by using the state object corresponding to the current state; if the current event is a valid event, the next state is determined based on the current event and the current state; if the current event is an invalid event, the current event is discarded.

[0042] Each state can correspond to one or more valid events. For example, after the streamer sends an invitation message, the current state is the invitation state. In the invitation state, receiving an event that indicates the other streamer accepts or rejects the invitation is a valid event. If a message indicating that the score has been completed is received, it is an invalid event.

[0043] By setting and judging valid events, we can avoid the current state object from processing invalid events, which could lead to errors. This improves the accuracy of determining the next state and thus improves the accuracy of the overall workflow execution.

[0044] Multiple states and multiple state objects can have a one-to-one correspondence. In interactive live streaming, some consecutive states share the same interface for collecting broadcaster actions. To reduce data transfer and simplify the workflow, multiple consecutive states sharing the same interface for collecting broadcaster actions can be configured to correspond to the same state object. For example, the invitation interface can include an invitation control to collect broadcaster actions and invite other broadcasters to join the interactive live stream. The stage of displaying the invitation interface can correspond to the ready state. After the broadcaster triggers the invitation control, the state transitions to the invitation state. The ready state and the invitation state can correspond to the same state object, and the data in the invitation interface can be shared. As another example, the invitation message interface can include an accept control to collect broadcaster actions and accept other broadcasters to join the interactive live stream. The stage of displaying the invitation message interface can correspond to the receive state. After the broadcaster triggers the accept control, the state transitions to the receive state. The receive state and the receive state can correspond to the same state object, and the data in the invitation message interface can be shared.

[0045] Since some state objects can correspond to only one state, while others can correspond to multiple states, in order to execute the workflow corresponding to the updated current state by using the state object corresponding to the updated current state, it is necessary to determine whether the state object corresponding to the updated current state is the same as the state object corresponding to the current state before the update.

[0046] In some embodiments, it is determined whether the current state and the updated current state correspond to the same state object; in response to the current state and the updated current state corresponding to different state objects, a state object corresponding to the updated current state is created through the registry.

[0047] The registry can be used to store and manage information related to the creation of state objects. For example, the registry contains information needed to create different state objects, such as class names and constructor parameters. Through the registry, it is easier and more accurate to create corresponding state objects based on different current states, achieving centralized management and control of object creation.

[0048] In some embodiments, in response to the current state and the updated current state corresponding to the same state object, a state update notification is sent to the state object corresponding to the current state; and the workflow corresponding to the updated current state is executed through the state object corresponding to the current state.

[0049] For example, after receiving the current event, the engine can determine whether the current state and the updated current state correspond to the same state object. If they correspond to different state objects, the engine can create the state object corresponding to the updated current state through the registry. If they correspond to the same state object, the engine can notify the state object corresponding to the current state to update the current state to the next state.

[0050] If the same state object corresponds to multiple states, different states can correspond to different workflows. After the state object updates its current state to the next state, only the workflow corresponding to the next state is executed, which can improve accuracy.

[0051] When different state objects correspond to different numbers of states, the method described in the above embodiments can more accurately determine the state object corresponding to the updated current state, thereby enabling more accurate execution of subsequent workflows.

[0052] In some embodiments, in response to determining the next state, the state object corresponding to the current state is configured as an inactive state; the state object corresponding to the updated current state is configured as an active state; and the workflow corresponding to the updated current state is executed through the state object in the active state corresponding to the updated current state.

[0053] State objects can be configured to be active or inactive. Active state objects can execute workflows, while inactive state objects do not. When entering a state object corresponding to the current state, that state object is set to active; when leaving a state object corresponding to the current state, it is set to inactive. This avoids incorrect workflow execution due to incorrect state object judgment and selection, improving the accuracy and stability of the overall workflow execution.

[0054] The client may include an entry component, an engine, a registry, and multiple state objects. The information interaction process between the entry component, engine, registry, and multiple state objects is described below with reference to Figure 2.

[0055] Figure 2 is a flowchart of some embodiments of the interactive live streaming control method of this disclosure. As shown in Figure 2, the method of this embodiment includes steps S202 to S212.

[0056] In step S202, the entry component obtains the current event and sends it to the engine.

[0057] For example, the entry component is a Fragment component, and the current event is the broadcaster's operation, receiving messages from other broadcasters, etc. Not all events are necessarily obtained through the entry component. For example, the countdown end event of an interactive task, or the countdown end event of the corresponding additional task stage of the interactive task, can be obtained by the state object executing the countdown and sent to the engine.

[0058] In step S204, the engine determines the current state and sends the current event to the state object corresponding to the current state.

[0059] In step S206, the state object corresponding to the current state determines the next state and sends the next state to the engine.

[0060] In step S208, the engine updates the stored current state to the next state, determines whether the current state and the updated current state correspond to the same state object, and if the current state and the updated current state correspond to different state objects, it searches the registry.

[0061] In step S210, a state object corresponding to the updated current state is created through the registry, and the workflow is executed by the state object corresponding to the updated current state.

[0062] After creating a state object, it can be instantiated to obtain the state instance corresponding to the updated current state.

[0063] In the above embodiments, the entry component obtains the current event, the engine is responsible for managing the current state, and calls different state objects to execute the corresponding workflow. The registry manages the creation of each state object. Through the cooperation and interaction of various parts, a more accurate and stable business process is formed as a whole, which improves the stability and accuracy of interactive live streaming.

[0064] When interactive live streaming includes interactive tasks, the interactive live streaming can be set to correspond to at least one of the following states: Initial state (None), Preparing state, Invited state, Received state, Accepted state, Connecting state, Settlement state, Punishment state, and Finished state.

[0065] The initial state refers to the state before an interactive live stream or interactive task is initiated. The ready state indicates the state after the first streamer triggers the interactive live stream initiation control. The invite state indicates the state after the first streamer triggers the operation to invite other streamers to join the interactive live stream. The receive state indicates the state after the first streamer's client receives an invitation message sent by another streamer. The accept state indicates the state after the first streamer accepts the invitation to join the interactive live stream. The connection state indicates the state after the interactive task connection is successful and begins. The score determination state indicates the state after the interactive task countdown ends and the score determination begins. The additional task state indicates the state after the score determination is completed and the additional task phase begins. The end state indicates the state after the interactive task ends. The reject state indicates the state after the first streamer rejects the invitation to join the interactive live stream. The cancel state indicates the state after the first streamer cancels the operation to invite other streamers to join the interactive live stream. The interrupted state indicates the state after the interactive live stream is interrupted.

[0066] The following describes the specific methods by which state objects execute workflows under different states.

[0067] In some embodiments, the current event is the operation event of the first broadcaster among multiple broadcasters triggering the interactive live broadcast initiation control. The current state is the initial state, and the next state is the preparation state. The workflow of displaying the invitation interface is executed through the state object corresponding to the preparation state. The invitation interface includes an invitation control, which is used to invite other broadcasters besides the first broadcaster to join the interactive live broadcast.

[0068] The interactive live stream initiation control can also be the interactive task initiation control. The first broadcaster can trigger the interactive live stream and interactive task initiation by triggering the initiation control, or trigger the interactive task initiation by triggering the initiation control during the interactive live stream. The state object (StateInviter) corresponding to the preparation state can trigger the pop-up and display of the invitation interface. The first broadcaster can trigger the invitation control to invite the second broadcaster to join the interactive live stream or interactive task. In some embodiments, the current event is the operation event of the first broadcaster inviting the second broadcaster to join the interactive live stream among multiple broadcasters. The current state is the preparation state, and the next state is the invitation state. Through the state object corresponding to the preparation state, based on the operation event of the first broadcaster inviting the second broadcaster to join the interactive live stream, the server's invitation interface is called to send an invitation message, where the invitation message includes the identifier of the second broadcaster. In response to the successful call of the invitation interface, through the state object corresponding to the preparation state, the next state is determined to be the invitation state. Through the state object corresponding to the invitation state, the workflow of closing the invitation interface is executed.

[0069] There can be one or more second-tier broadcasters. For example, in response to the first broadcaster triggering an invitation control, information about multiple candidate broadcasters is displayed; in response to the first broadcaster's selection of a second broadcaster, the current event is determined. The state object corresponding to the preparation state executes the corresponding workflow, namely, calling the server's invitation interface to send an invitation message. The invitation message needs to be sent from the first broadcaster's client to the second broadcaster's client via the server. If the invitation interface call is successful, the next state is determined to be the invitation state; if the invitation interface call fails, a workflow that displays a failure message can be executed.

[0070] The state object corresponding to the invite state can execute the workflow of closing the invite interface. The prepare state and the invite state can correspond to the same state object (StateInviter).

[0071] In the invitation state, if the current event is the first streamer canceling the invitation, the next state can be the end state.

[0072] In some embodiments, the current event is the event in which the first streamer among multiple streamers receives an invitation message sent by the second streamer. The current state is the initial state, and the next state is the receiving state. The workflow of displaying the invitation message interface is executed through the state object corresponding to the receiving state. The invitation message interface includes an accept control, which is used to accept the invitation from the second streamer to join the interactive live broadcast.

[0073] The first host can act as both the initiator and the receiver. When the first host receives an invitation message from the second host, they transition from the initial state to the receiving state. The state object (StateInvitee) corresponding to the receiving state can trigger the display of the invitation message interface. The invitation message interface can display the first host's information, an accept control, and a reject control. The first host can join the interactive live stream or interactive task by triggering the accept control.

[0074] If the first streamer sends an invitation message and then receives an invitation message from the second streamer, the current state is the invitation state, which will transition to the receiving state. The subsequent workflow will be executed by the state object corresponding to the receiving state, without causing confusion.

[0075] In some embodiments, the current event is the operation event in which the first anchor among multiple anchors accepts the invitation of the second anchor to join the interactive live broadcast. The current state is the receiving state, and the next state is the receiving state. Through the state object corresponding to the receiving state, the workflow of calling the server's accept interface to send the accept invitation message is executed. The state object corresponding to the receiving state can also receive the message that the accept interface call was successful.

[0076] The StateInvitee object corresponding to the receiving state executes the corresponding workflow, which involves calling the server's accept interface to send an accept invitation message. This accept invitation message needs to be sent from the first broadcaster's client to the second broadcaster's client via the server. If the accept interface call succeeds, the next state is determined to be the accept state; if the accept interface call fails, a workflow displaying a failure message can be executed.

[0077] In the receiving state, if the current event is the first streamer rejecting the second streamer's invitation, the next state can be the ending state.

[0078] The state object corresponding to the "accept" state can execute the workflow of closing the invitation message interface. The "receive" state and the "accept" state can correspond to the same state object (StateInvitee).

[0079] It can also receive the status object corresponding to the status, and call the server's accept interface to send an acceptance invitation message based on the operation event of the first host accepting the invitation of the second host to join the interactive live broadcast; in response to the successful call of the accept interface, determine the next status as the accept status based on the received status by receiving the status object; and execute the workflow of closing the invitation message interface by receiving the status object.

[0080] In some embodiments, the current event is the start of an interactive task in an interactive live stream, the current state is an invitation state or an acceptance state, and the next state is a connection state. The workflow of executing the countdown to start the interactive task and displaying the countdown information of the interactive task is carried out through the state object corresponding to the connection state.

[0081] The interactive task can begin upon receiving a start message from the server. In the invite or accept state, if the first and second broadcasters successfully connect, the system transitions to the connected state, and the interactive live stream or interactive task begins. The interactive task corresponds to a predetermined duration. In response to the start of the interactive task, the corresponding state object (StateConnecting) starts the countdown for the interactive task and displays the countdown information.

[0082] In some embodiments, the current event is the event that the countdown of the interactive task in the interactive live broadcast ends, the current state is the connection state, and the next state is the score determination state. The score determination request is sent to the server through the state object corresponding to the score determination state. The score determination request is used to request the determination of the score of each streamer based on the data of multiple streamers participating in the interactive task.

[0083] Once the countdown for the interactive task ends, a score determination request is sent to the server using the StateSettlement object corresponding to the score. For example, the score determination request can be used to ask the server to determine the score for each streamer based on data such as the number of likes, viewers, and scores of the first and second streamers in the interactive task, and then compare the scores to obtain the comparison result (score determination result).

[0084] Alternatively, by using the state object corresponding to the connection state, a score determination message can be sent by calling the server's score determination interface based on the event of the interactive task countdown ending. The score determination request is used to request the determination of each streamer's score based on the data of multiple streamers participating in the interactive task. In response to the successful call to the score determination interface, the next state is determined to be the score determination state based on the connection state using the state object corresponding to the connection state. The workflow of waiting for the score determination result is executed using the state object corresponding to the score determination state.

[0085] In the connected state, if the current event is an interruption event, the next state can be the end state.

[0086] In some embodiments, the current event is the completion of the interactive task score in the interactive live broadcast, the current state is the score determination state, and the next state is the additional task state. The workflow of starting the countdown for the additional task and displaying the countdown information of the additional task is executed through the state object corresponding to the additional task state.

[0087] Interactive tasks can include an additional task phase, which can be completed by the party that failed in the interactive task. The additional task phase is configured with a corresponding duration, and the state object (StatePunishment) corresponding to the additional task status can start the countdown of the additional task and display the countdown information of the additional task.

[0088] In some embodiments, the current event is the event that the countdown of the additional task stage corresponding to the interactive task in the interactive live broadcast ends. The current state is the additional task state, and the next state is the end state. The workflow of cleaning up the resources occupied by the interactive task and ending the interactive task is executed through the state object corresponding to the end state.

[0089] When the additional task phase ends, the state changes from the additional task state to the end state. The interactive task or interactive live broadcast ends by using the state object (StateFinished) corresponding to the end state, and the data stored in each state object can be cleared.

[0090] The above embodiments divide interactive live streaming into multiple stages corresponding to multiple states. The state objects corresponding to different states execute different workflows, forming a clear and stable business process as a whole, which improves the stability and accuracy of interactive live streaming.

[0091] The following uses two live streamers as an example, combined with Figure 3, to describe the process of interactive live streaming.

[0092] Figure 3 is a flowchart of some embodiments of the interactive live streaming control method of this disclosure. As shown in Figure 3, the method of this embodiment includes steps S301 to S341. Steps S301 to S307, S314 to S316, and S320 to S330 are executed by a first client, and steps S308 to S313, S317 to S319, and S331 to S341 are executed by a second client.

[0093] In step S301, the operation event of the first anchor triggering the interactive live broadcast initiation control is received as the current event.

[0094] In step S302, the current event is passed to the engine, which then passes it to the state object corresponding to the initial state. The state object corresponding to the initial state determines that the next state is the preparation state and notifies the engine that the next state is the preparation state. The engine creates the state object corresponding to the preparation state through the registry.

[0095] In step S303, the invitation interface is displayed through the status object corresponding to the preparation state.

[0096] You can call the entry method corresponding to the state object (state instance) to enter the state object and execute the workflow of displaying the invitation interface.

[0097] In step S304, the operation event of the first broadcaster triggering the invitation control in the invitation interface is received as the current event.

[0098] In step S305, the state object corresponding to the preparation state calls the server's invitation interface to send an invitation message.

[0099] The invitation control can be managed by the state object corresponding to the preparation state. The operation event of the invitation control in the first broadcaster's invitation interface can be directly called back to the state object corresponding to the preparation state without needing to be passed through the engine.

[0100] In step S306, the state object corresponding to the preparation state receives a message from the server indicating that the call invitation interface was successful.

[0101] In step S307, the state object corresponding to the preparation state determines that the next state is the invitation state and notifies the engine that the next state is the invitation state. The engine notifies the state object of the preparation state to update the current state, and the state object corresponding to the preparation state closes the invitation interface. The preparation state and the invitation state correspond to the same state object.

[0102] In step S308, an invitation message sent by the server is received.

[0103] Step S308 can be performed before S307.

[0104] In step S309, the current event is passed to the engine, which then passes it to the state object corresponding to the initial state. The state object corresponding to the initial state determines that the next state is the receiving state and notifies the engine that the next state is the receiving state. The engine then creates the state object corresponding to the receiving state through the registry.

[0105] The engine, state objects, and registry are configured within the client; therefore, the first client and the second client correspond to different engines, state objects, and registry entries, respectively.

[0106] In step S310, the invitation message interface is displayed by receiving the status object corresponding to the status status.

[0107] In step S311, the operation event of the accept control in the second anchor's invitation message interface is received as the current event.

[0108] In step S312, the state object corresponding to the receiving state determines the next state as the accepting state and notifies the engine that the next state is the accepting state. The engine then notifies the state object of the receiving state to update its current state, and the state object corresponding to the receiving state closes the invitation message interface. The receiving state and the accepting state correspond to the same state object.

[0109] The accept control can be managed by the state object corresponding to the receiving state. The operation events of the accept control in the second host's invitation message interface can be directly called back to the state object corresponding to the receiving state, without needing to be passed through the engine.

[0110] In step S313, the state object corresponding to the accept state calls the server's accept interface to send an accept invitation message.

[0111] The status object corresponding to the receiving state can also receive a message from the server indicating that the call to the acceptance interface was successful.

[0112] In step S314, a start message sent by the server is received as the current event.

[0113] In step S315, the current event is passed to the engine, which then passes it to the state object corresponding to the invitation state. The state object corresponding to the invitation state determines that the next state is the connection state and notifies the engine that the next state is the connection state. The engine then creates the state object corresponding to the connection state through the registry.

[0114] In step S316, the countdown for the interactive task is started and the countdown information for the interactive task is displayed by connecting the state object corresponding to the state state.

[0115] In step S317, a start message sent by the server is received as the current event.

[0116] In step S318, the current event is passed to the engine, which then passes it to the state object corresponding to the receiving state. The state object corresponding to the inviting state determines the next state as the connection state and notifies the engine that the next state is the connection state. The engine creates the state object corresponding to the connection state through the registry.

[0117] In step S319, the countdown for the interactive task is started and the countdown information for the interactive task is displayed by connecting the state object corresponding to the state state.

[0118] Steps S314 to S316 and steps S317 to S310 can be executed in parallel, without any order.

[0119] In step S320, in response to the end of the interactive task countdown, the event of the end of the interactive task countdown is determined as the current event.

[0120] In step S321, the current event is passed to the engine, which then passes it to the state object corresponding to the connection state. The state object corresponding to the connection state determines that the next state is the score determination state and notifies the engine that the next state is the score determination state. The engine then creates the state object corresponding to the score determination state through the registry.

[0121] In step S322, the state object corresponding to the state is determined by the score and a score determination message is sent to the server.

[0122] The server's score determination interface can be called to send a score determination message. The status object corresponding to the score determination status can also receive a message indicating that the score determination interface call was successful.

[0123] In step S323, a score determination completion message sent by the server is received as the current event, wherein the score determination completion message includes the score determination result.

[0124] In step S324, the current event is passed to the engine, which then passes it to the state object corresponding to the score determination state. The state object corresponding to the score determination state determines that the next state is the additional task state and notifies the engine that the next state is the additional task state. The engine creates the state object corresponding to the additional task state through the registry.

[0125] In step S325, the countdown for the additional task is started and the countdown information for the additional task is displayed through the status object corresponding to the status of the additional task.

[0126] In step S326, in response to the end of the countdown for the additional task phase, the event of the end of the countdown for the additional task phase is taken as the current event.

[0127] In step S327, the current event is passed to the engine, which then passes it to the state object corresponding to the attached task state. The state object corresponding to the attached task state calls the server's end interface to send an end message.

[0128] In step S328, the status object corresponding to the attached task status receives a message from the server indicating that the call to the interface was successful.

[0129] In step S329, the state object corresponding to the attached task state determines that the next state is the end state and notifies the engine that the next state is the end state. The engine creates the state object corresponding to the end state through the registry.

[0130] In step S330, the resources occupied by the interactive task are cleared and the interactive task is terminated by using the state object corresponding to the termination state.

[0131] Steps S331 to S341 are similar to steps S320 to S330, but the executing entities are different. Steps S331 to S341 and steps S320 to S330 can be executed in parallel, without any order.

[0132] In step S331, in response to the end of the interactive task countdown, the event of the end of the interactive task countdown is determined as the current event.

[0133] In step S332, the current event is passed to the engine, which then passes it to the state object corresponding to the connection state. The state object corresponding to the connection state determines that the next state is the score determination state and notifies the engine that the next state is the score determination state. The engine then creates the state object corresponding to the score determination state through the registry.

[0134] In step S333, the state object corresponding to the state is determined by the score and a score determination message is sent to the server.

[0135] The server's score determination interface can be called to send a score determination message. The status object corresponding to the score determination status can also receive a message indicating that the score determination interface call was successful.

[0136] In step S334, a score determination completion message sent by the server is received as the current event, wherein the score determination completion message includes the score determination result.

[0137] In step S335, the current event is passed to the engine, which then passes it to the state object corresponding to the score determination state. The state object corresponding to the score determination state determines that the next state is the additional task state and notifies the engine that the next state is the additional task state. The engine creates the state object corresponding to the additional task state through the registry.

[0138] In step S336, the countdown for the attached task process is started and the countdown information for the attached task is displayed through the status object corresponding to the attached task status.

[0139] In step S337, in response to the end of the countdown for the additional task phase, the event of the end of the countdown for the additional task phase is taken as the current event.

[0140] In step S338, the current event is passed to the engine, which then passes it to the state object corresponding to the attached task state. The state object corresponding to the attached task state calls the server's end interface to send an end message.

[0141] In step S339, the status object corresponding to the attached task status receives a message from the server indicating that the call to the interface was successful.

[0142] In step S340, the state object corresponding to the attached task state determines that the next state is the end state and notifies the engine that the next state is the end state. The engine creates the state object corresponding to the end state through the registry.

[0143] In step S341, the resources occupied by the interactive task are cleared and the interactive task is terminated by using the state object corresponding to the termination state. The current state can also be updated to the initial state.

[0144] The above embodiment takes one interactive task as an example. Interactive live streaming can include multiple interactive tasks, such as a battle task (PK). Multiple streamers can initiate multiple battle tasks.

[0145] In some embodiments, each interactive task in a plurality of interactive tasks corresponds to an engine, and the engine corresponding to each interactive task is used to manage the current state of each interactive task. Multiple interactive tasks correspond to multiple states that are the same, and different interactive tasks correspond to different state instances of the same state object.

[0146] When an interactive task comprises multiple interactive tasks, a separate engine can be configured for each task, with different engines used to invoke different state instances of the same state object. This avoids confusion and overlap in workflows across different interactive tasks, improving the overall stability and accuracy of the workflow.

[0147] In some embodiments, in response to the occurrence of a current event in an interactive live stream, the interactive task corresponding to the current event is determined; and the current state of the interactive task is determined through the engine corresponding to the interactive task.

[0148] For example, after receiving the current event, the interface component needs to determine the interaction task to which the current event belongs, and then send the current event to the engine corresponding to the interaction task, thereby improving the accuracy of subsequent execution workflow.

[0149] In some embodiments, the engine corresponding to the interactive task calls the state instance corresponding to the current state of the interactive task, and determines the next state of the interactive task based on the current event and the current state of the interactive task; the engine corresponding to the interactive task calls the state instance corresponding to the updated current state of the interactive task, and executes the workflow corresponding to the updated current state.

[0150] The engine corresponding to an interactive task is only responsible for calling the various state instances corresponding to the interactive task to determine the next state or execute the corresponding workflow, thereby decoupling and isolating the workflows of different interactive tasks and improving the accuracy and stability of the workflow execution of each interactive task. The state objects in the aforementioned embodiments can also be state instances.

[0151] In some embodiments, the multiple interactive tasks include a first interactive task and a second interactive task, the first interactive task corresponds to a first engine, the second interactive task corresponds to a second engine, and the second engine is created in response to the first interactive task entering a stage corresponding to a preset state.

[0152] In the case of multiple interactive tasks, each subsequent interactive task is created when the previous interactive task enters a preset state. For example, the preset state might be an "additional task" state. A second engine can be created through the entry component. After creating the second engine, the resources occupied by the first engine can be released after the additional task phase ends, or the additional task phase can be stopped after starting the second interactive task, releasing the resources occupied by the first engine. Subsequent events can be sent only to the second engine.

[0153] For example, interactive live streaming includes a first interactive task, which corresponds to a first engine. The first engine receives the current event corresponding to the first interactive task and determines the current state of the first interactive task, which is stored in the first engine. The first engine then calls the state instance corresponding to the current state of the first interactive task and determines the next state of the first interactive task based on the current event and the current state of the first interactive task. The first engine updates the stored current state of the first interactive task to the next state of the first interactive task. Finally, the first engine calls the state instance corresponding to the updated current state of the first interactive task and executes the workflow corresponding to the state instance corresponding to the updated current state of the first interactive task.

[0154] For example, in response to the first interactive task entering a stage corresponding to a preset state, a second engine is created, which corresponds to the second interactive task; the second engine receives the current event corresponding to the second interactive task and determines the current state of the second interactive task, wherein the current state of the second interactive task is stored in the second engine; the state instance corresponding to the current state of the second interactive task is called, and the next state of the second interactive task is determined based on the current event and the current state of the second interactive task; the stored current state of the second interactive task is updated to the next state of the second interactive task through the second engine; the stored current state of the second interactive task is updated to the next state of the second interactive task through the second engine; the state instance corresponding to the updated current state of the second interactive task is called, and the workflow corresponding to the state instance corresponding to the updated current state of the second interactive task is executed.

[0155] The methods described in the above embodiments can enable the initiation and execution of multiple interactive tasks, and improve the stability and accuracy of the execution of multiple interactive tasks.

[0156] The following describes the overall process of interactive live streaming with reference to Figure 4, when multiple interactive tasks are involved.

[0157] Figure 4 is a flowchart of some further embodiments of the interactive live streaming control method of this disclosure. As shown in Figure 4, the method of this embodiment includes steps S401 to S417.

[0158] In step S401, in response to the first broadcaster's broadcasting operation, the main engine on the first broadcaster's side is created.

[0159] In step S402, in response to the second broadcaster's broadcasting operation, a main engine is created on the second broadcaster's side.

[0160] The main engine can be the first engine in the aforementioned embodiments.

[0161] In step S403, in response to the first broadcaster triggering the invitation control, an invitation message is sent to the second broadcaster.

[0162] In step S404, the second broadcaster's client displays the invitation interface.

[0163] In step S405, in response to the second broadcaster triggering the accept control, a message accepting the invitation is sent.

[0164] In step S406, the first interactive task begins.

[0165] In step S407, the countdown for the first interactive task ends.

[0166] In step S408, the additional task phase is initiated.

[0167] In step S409, a secondary engine is created on the first broadcaster side.

[0168] In step S410, a secondary engine for the second broadcaster side is created.

[0169] The secondary engine can be the second engine in the aforementioned embodiments.

[0170] In step S411, in response to the first anchor triggering the rematch control, an invitation message is sent to the second anchor.

[0171] In step S412, the second broadcaster's client displays the invitation interface.

[0172] In step S413, in response to the second broadcaster triggering the accept control, a message accepting the invitation is sent.

[0173] In step S414, the second interactive task begins.

[0174] The additional task phase can be stopped.

[0175] In step S415, the first anchor-side sub-engine is transformed into the main engine.

[0176] In step S416, the second anchor-side sub-engine is transformed into the main engine.

[0177] In step S417, the original main engines of the first and second broadcasters are destroyed.

[0178] The interaction process between the main engine, the sub-engine, the state object, and the registry is omitted in the above embodiments. Please refer to the previous embodiments for details, which will not be repeated here.

[0179] The engine's interface file can be configured for other components to call and transmit information. For example, the engine interface file can include an engine identifier to distinguish different engines, the type of interactive task (e.g., two-player battle, multi-player battle), a registry, and the currently held state object. The engine interface file can also configure input methods; any event received by the entry component will be input into the engine. It can also configure state transition methods; the state object calls these methods to change the current state to the next. Finally, it can configure a stop method to interrupt the interactive live stream.

[0180] An interface file for a state object can be configured, allowing other components to call the state object's interface to transmit information. For example, the state object interface file can weakly hold an engine identifier, include the state corresponding to the state object, and indicate whether the state object is active. The state object interface file can also include entry methods, input methods, exit methods, and termination methods. Entering a state object allows the execution of corresponding workflows, and leaving a state object cleans up the resources it occupies.

[0181] By configuring the engine's interface file and the state object's interface file, the calls to the engine and state objects can be implemented more accurately.

[0182] This disclosure also provides a control device for interactive live streaming, which will be described below with reference to Figure 5. The control device for interactive live streaming can be installed in the broadcaster's terminal.

[0183] Figure 5 is a structural diagram of some embodiments of the interactive live streaming control device of this disclosure. As shown in Figure 5, the interactive live streaming control device 50 of this embodiment includes: a first determining module 510, a second determining module 520, an updating module 530, and an execution module 540.

[0184] The first determining module 510 is configured to determine the current state in response to the occurrence of a current event in an interactive live stream involving multiple anchors, wherein the interactive live stream corresponds to multiple states.

[0185] The second determining module 520 is configured to determine the next state based on the current event and the current state by using the state object corresponding to the current state. Different state objects are used to execute workflows under different states in the interactive live broadcast.

[0186] The update module 530 is configured to update the current state to the next state.

[0187] The execution module 540 is configured to execute the workflow corresponding to the updated current state through the state object corresponding to the updated current state.

[0188] In some embodiments, the second determining module 520 is configured to determine whether the current event is a valid event corresponding to the current state through the state object corresponding to the current state; in response to the current event being a valid event, determine the next state based on the current event and the current state; and in response to the current event being an invalid event, discard the current event.

[0189] In some embodiments, the execution module 540 is configured to determine whether the current state and the updated current state correspond to the same state object; in response to the current state and the updated current state corresponding to different state objects, the execution module 540 creates a state object corresponding to the updated current state through the registry.

[0190] In some embodiments, the execution module 540 is further configured to send a status update notification to the status object corresponding to the current state in response to the current state and the updated current state corresponding to the same status object; and to execute the workflow corresponding to the updated current state through the status object corresponding to the current state.

[0191] In some embodiments, in response to determining the next state, the state object corresponding to the current state is configured to be inactive, and the execution module 540 is configured to configure the state object corresponding to the updated current state to be active, and execute the workflow corresponding to the updated current state through the state object in the active state corresponding to the updated current state.

[0192] In some embodiments, interactive live streaming includes multiple interactive tasks, each interactive task corresponds to an engine, and the engine corresponding to each interactive task is used to manage the current state of each interactive task. Multiple interactive tasks correspond to multiple states that are the same, and different interactive tasks correspond to different state instances of the same state object.

[0193] In some embodiments, the first determining module 510 is configured to determine the interactive task corresponding to the current event in response to the occurrence of the current event in the interactive live broadcast; and to determine the current state of the interactive task through the engine corresponding to the interactive task.

[0194] In some embodiments, the second determining module 520 is configured to call the state instance corresponding to the current state of the interactive task through the engine corresponding to the interactive task, and determine the next state of the interactive task based on the current event and the current state of the interactive task; the execution module 540 is configured to call the state instance corresponding to the updated current state of the interactive task through the engine corresponding to the interactive task, and execute the workflow corresponding to the updated current state.

[0195] In some embodiments, the multiple interactive tasks include a first interactive task and a second interactive task, the first interactive task corresponds to a first engine, the second interactive task corresponds to a second engine, and the second engine is created in response to the first interactive task entering a stage corresponding to a preset state.

[0196] In some embodiments, the current event is the operation event of the first anchor among multiple anchors triggering the interactive live broadcast initiation control. The current state is the initial state, and the next state is the preparation state. The execution module 540 is configured to execute the workflow of displaying the invitation interface through the state object corresponding to the preparation state. The invitation interface includes an invitation control, which is used to invite anchors other than the first anchor to join the interactive live broadcast.

[0197] In some embodiments, the current event is an operation event in which the first anchor invites the second anchor to join the interactive live stream among multiple anchors. The current state is the preparation state, and the next state is the invitation state. The second determining module 520 is configured to call the server's invitation interface to send an invitation message based on the operation event of the first anchor inviting the second anchor to join the interactive live stream, according to the state object corresponding to the preparation state. The invitation message includes the identifier of the second anchor. In response to the successful call of the invitation interface, the next state is determined to be the invitation state based on the state object corresponding to the preparation state. The execution module 540 is configured to execute the workflow of closing the invitation interface based on the state object corresponding to the invitation state.

[0198] In some embodiments, the current event is the event in which the first anchor among multiple anchors receives an invitation message sent by the second anchor. The current state is the initial state, and the next state is the receiving state. The execution module 540 is configured to execute the workflow of displaying the invitation message interface through the state object corresponding to the receiving state. The invitation message interface includes an accept control, which is used to accept the invitation from the second anchor to join the interactive live broadcast.

[0199] In some embodiments, the current event is an operation event in which the first anchor among multiple anchors accepts the invitation of the second anchor to join the interactive live broadcast. The current state is the receiving state, and the next state is the receiving state. The execution module 540 is configured to execute the workflow of calling the server's receiving interface to send the acceptance invitation message through the state object corresponding to the receiving state.

[0200] In some embodiments, the current event is the start of an interactive task in an interactive live stream, the current state is an invitation state or an acceptance state, the next state is a connection state, and the execution module 540 is configured to execute a workflow of starting a countdown for the interactive task and displaying the countdown information of the interactive task through the state object corresponding to the connection state.

[0201] In some embodiments, the current event is the event that the countdown of the interactive task in the interactive live broadcast ends, the current state is the connection state, the next state is the score determination state, and the execution module 540 is configured to send a score determination request to the server through the state object corresponding to the score determination state. The score determination request is used to request the determination of the score of each streamer based on the data of multiple streamers participating in the interactive task.

[0202] In some embodiments, the current event is the completion of the interactive task score determination in the interactive live broadcast, the current state is the score determination state, the next state is the additional task state, and the execution module 540 is configured to execute a workflow of starting the countdown of the additional task and displaying the countdown information of the additional task through the state object corresponding to the additional task state.

[0203] In some embodiments, the current event is the event that the countdown of the additional task stage corresponding to the interactive task in the interactive live broadcast ends. The current state is the additional task state, and the next state is the end state. The execution module 540 is configured to execute the workflow of cleaning up the resources occupied by the interactive task and ending the interactive task through the state object corresponding to the end state.

[0204] Figure 6 shows a block diagram of an electronic device according to some embodiments of the present disclosure.

[0205] Memory 61 is used to store one or more computer-readable instructions. Memory 61 may include any combination of various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory, including but not limited to random access memory (RAM), dynamic random access memory (DRAM), static random access memory (SRAM), read-only memory (ROM), and flash memory. Memory 61 may, for example, store operating systems, application programs, boot loaders, databases, and other programs, as well as various application programs and various data.

[0206] The processor 62 is used to execute computer-readable instructions to implement the interactive live streaming control method described in any of the foregoing embodiments. Specific implementations of each step of the method can be found in the above embodiments; repeated details will not be elaborated here.

[0207] Processor 62 can be configured to execute the steps shown in Figures 1 through 4. Processor 62 can be various processing devices, such as a central processing unit (CPU), a network processor (NP), etc.; it can also be a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, or discrete hardware components. The central processing unit (CPU) can be based on x86 or ARM architectures, etc.

[0208] The processor 62 and the memory 61 can communicate with each other directly or indirectly. For example, the processor 62 and the memory 61 can communicate via a network. The network can include wireless networks, wired networks, and / or any combination of wireless and wired networks. The processor 62 and the memory 61 can also communicate with each other via a system bus, which is not limited in this disclosure.

[0209] It should be noted that the components of the electronic device 6 shown in Figure 6 are exemplary and not limiting. The electronic device 6 may have other components depending on the specific application requirements. The processor 62 can control other components in the electronic device 6 to perform the desired functions.

[0210] Electronic device 6 can be implemented by software, firmware and / or hardware, and can be integrated into a device with the relevant application installed.

[0211] Figure 7 shows a block diagram of an electronic device according to other embodiments of the present disclosure.

[0212] The electronic device 7 shown in Figure 7 can be a computer system with a dedicated hardware structure, capable of performing corresponding functions when relevant applications are installed.

[0213] Electronic devices include, but are not limited to, mobile terminals such as smartphones, laptops, personal digital assistants (PDAs), tablet computers (PCs), PMPs (portable multimedia players), in-vehicle terminals (such as in-vehicle navigation terminals), wearable devices, and fixed terminals such as digital televisions and desktop computers.

[0214] As shown in Figure 7, the Central Processing Unit (CPU) 71 executes various processes based on programs stored in the Read-Only Memory (ROM) 72 or programs loaded from the storage section 78 into the Random Access Memory (RAM) 73. The RAM 73 stores data required as needed when the CPU 71 executes various processes. The CPU is merely exemplary and can also be other types of processors, such as the various processors described above. The ROM 72, RAM 73, and storage section 78 can be various forms of computer-readable storage media. It should be noted that although the ROM 72, RAM 73, and storage section 78 are shown separately in Figure 7, one or more of them can be combined or located in the same or different memories or storage modules.

[0215] CPU 71, ROM 72 and RAM 73 are interconnected via bus 74. Input / output interface 75 is also connected to bus 74.

[0216] The following components are connected to the input / output interface 75: input section 76, such as a touchscreen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; output section 77, including displays such as cathode ray tube (CRT), liquid crystal display (LCD), speakers, vibrators, etc.; storage section 78, including hard disks, magnetic tapes, etc.; and communication section 79, including network interface cards such as LAN cards, modems, etc. The communication section 79 allows communication processing to be performed via a network such as the Internet. It is readily understood that although parts of the electronic device 7 shown in Figure 7 communicate via bus 74, they can also communicate via a network or other means, wherein the network can include wireless networks, wired networks, and / or any combination of wireless and wired networks.

[0217] As needed, drive 710 is also connected to input / output interface 75. Removable media 711, such as disks, optical disks, magneto-optical disks, semiconductor memories, etc., are installed on drive 710 as needed, so that computer programs read from them can be installed into storage section 78 as needed.

[0218] When the above series of processes are implemented through software, the program constituting the software can be installed from a network such as the Internet or a storage medium such as a removable medium 711.

[0219] According to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, some embodiments of this disclosure include a computer program product that, when run on a computer, causes the computer to perform the methods described in any of the foregoing embodiments. The computer program product includes computer instructions carried on a computer-readable medium, comprising program code for performing the methods shown in the flowcharts. In such embodiments, the computer instructions can be downloaded and installed from a network via communication section 79, or installed from storage section 78, or installed from ROM 72. When the computer program is executed by CPU 71, the methods of embodiments of this disclosure are performed.

[0220] It should be noted that, in the context of this disclosure, a computer-readable medium can be a tangible medium that may contain or store programs for use by or in conjunction with an instruction execution system, apparatus, or device.

[0221] A computer-readable medium may be a computer-readable storage medium, a computer-readable signal medium, or any combination thereof.

[0222] Computer-readable storage media include, but are not limited to, systems, apparatuses, or devices that are electrical, magnetic, optical, electromagnetic, infrared, or semiconductor, or any combination thereof. More specific examples of computer-readable storage media may include, but are not limited to, electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. Computer instructions are stored on the computer-readable storage medium that, when executed by a processor, implement the methods described in any of the foregoing embodiments.

[0223] Computer-readable signal media may include data signals propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, capable of sending, propagating, or transmitting programs for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium may be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.

[0224] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.

[0225] In some embodiments, a computer program is also provided, comprising: instructions that, when executed by a processor, cause the processor to perform the methods described in any of the foregoing embodiments. For example, the instructions may be embodied in computer program code.

[0226] In embodiments of this disclosure, computer program code for performing the operations of this disclosure can be written in one or more programming languages ​​or a combination thereof. These programming languages ​​include, but are not limited to, object-oriented programming languages ​​such as Java, Smalltalk, and C++, as well as conventional procedural programming languages ​​such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network (including a local area network (LAN) or a wide area network (WAN)), or it can be connected to an external computer (e.g., via the Internet using an Internet service provider).

[0227] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0228] The functions described above can be performed, at least in part, by one or more hardware logic components. For example, without limitation, exemplary hardware logic components that can be used include: Field Programmable Gate Arrays (FPGAs), Application-Specific Integrated Circuits (ASICs), Application Standard Products (ASSPs), System-on-Chip (SoCs), Complex Programmable Logic Devices (CPLDs), and so on.

[0229] While specific embodiments of this disclosure have been described in detail by way of example, those skilled in the art should understand that the examples are for illustrative purposes only and not intended to limit the scope of this disclosure. Those skilled in the art should understand that modifications can be made to the above embodiments without departing from the scope and spirit of this disclosure. The scope of this disclosure is defined by the appended claims.

Claims

1. A method for controlling interactive live streaming, comprising: In response to the occurrence of a current event in an interactive live stream involving multiple broadcasters, the current state is determined, wherein the interactive live stream corresponds to multiple states; Based on the current event and the current state, the next state is determined using the state object corresponding to the current state. Different state objects are used to execute the workflow in different states during the interactive live broadcast. Update the current state to the next state; The workflow corresponding to the updated current state is executed using the updated current state object.

2. The control method according to claim 1, wherein The step of determining the next state based on the current event and the current state using the state object corresponding to the current state includes: By using the state object corresponding to the current state, it is determined whether the current event is a valid event corresponding to the current state; In response to the current event being a valid event, the next state is determined based on the current event and the current state; If the current event is deemed invalid, the current event is discarded.

3. The control method according to claim 1 or 2, wherein The step of executing the workflow corresponding to the updated current state using the updated current state object includes: Determine whether the current state and the updated current state correspond to the same state object; In response to the fact that the current state and the updated current state correspond to different state objects, a state object corresponding to the updated current state is created through the registry.

4. The control method according to claim 3, wherein The step of executing the workflow corresponding to the updated current state using the updated current state object further includes: In response to the fact that the current state and the updated current state correspond to the same state object, a state update notification is sent to the state object corresponding to the current state; The updated workflow corresponding to the current state is executed using the state object corresponding to the current state.

5. The control method according to any one of claims 1-4, further comprising: In response to determining the next state, the state object corresponding to the current state is configured to be inactive. The step of executing the workflow corresponding to the updated current state through the updated current state object includes: Configure the state object corresponding to the updated current state as the active state, and execute the workflow corresponding to the updated current state through the active state object corresponding to the updated current state.

6. The control method according to any one of claims 1-5, wherein, The interactive live stream includes multiple interactive tasks, each of which corresponds to an engine. The engine corresponding to each interactive task is used to manage the current state of each interactive task. The multiple states corresponding to the multiple interactive tasks are the same, and different interactive tasks correspond to different state instances of the same state object.

7. The control method according to claim 6, wherein The process of determining the current state in response to the occurrence of a current event in the interactive live stream includes: In response to the occurrence of the current event in the interactive live stream, determine the interactive task corresponding to the current event; The current state of the interactive task is determined by the engine corresponding to the interactive task.

8. The control method according to claim 7, wherein The step of determining the next state based on the current event and the current state using the state object corresponding to the current state includes: The engine corresponding to the interactive task calls the state instance corresponding to the current state of the interactive task, and determines the next state of the interactive task based on the current event and the current state of the interactive task. The step of executing the workflow corresponding to the updated current state using the updated current state object includes: The engine corresponding to the interactive task calls the state instance corresponding to the updated current state of the interactive task and executes the workflow corresponding to the updated current state.

9. The control method according to any one of claims 6-8, wherein, The plurality of interactive tasks include a first interactive task and a second interactive task. The first interactive task corresponds to a first engine, and the second interactive task corresponds to a second engine. The second engine is created in response to the first interactive task entering a stage corresponding to a preset state.

10. The control method according to any one of claims 1-9, wherein, The current event is the operation event in which the first broadcaster among the plurality of broadcasters triggers the interactive live broadcast initiation control. The current state is the initial state, and the next state is the preparation state. The process of executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state includes: By using the state object corresponding to the preparation state, the workflow of displaying the invitation interface is executed. The invitation interface includes an invitation control, which is used to invite other broadcasters besides the first broadcaster to join the interactive live broadcast.

11. The control method according to any one of claims 1-10, wherein, The current event is the operation event where the first streamer among the multiple streamers invites the second streamer to join the interactive live stream; the current state is the preparation state; and the next state is the invitation state. The step of determining the next state based on the current event and the current state using the state object corresponding to the current state includes: Based on the status object corresponding to the preparation state, and according to the operation event of the first anchor inviting the second anchor to join the interactive live broadcast, the server's invitation interface is called to send an invitation message, wherein the invitation message includes the identifier of the second anchor; In response to the successful call to the invitation interface, the next state is determined to be the invitation state based on the state object corresponding to the preparation state. The step of executing the workflow corresponding to the updated current state using the updated current state object includes: The workflow for closing the invitation interface is executed through the status object corresponding to the invitation status.

12. The control method according to any one of claims 1-11, wherein, The current event is the event where the first broadcaster among the multiple broadcasters receives an invitation message sent by the second broadcaster. The current state is the initial state, and the next state is the receiving state. The process of executing the workflow corresponding to the updated current state through the state object includes: By receiving the status object corresponding to the status, the workflow of displaying the invitation message interface is executed. The invitation message interface includes an accept control, which is used to accept the invitation from the second host to join the interactive live broadcast.

13. The control method according to any one of claims 1-12, wherein, The current event is the operation event where the first streamer among the multiple streamers accepts the invitation from the second streamer to join the interactive live stream. The current state is the receiving state, and the next state is the receiving state. The process of executing the workflow corresponding to the updated current state through the updated state object includes: The workflow involves calling the server's acceptance interface to send an acceptance invitation message based on the status object corresponding to the acceptance status.

14. The control method according to any one of claims 1-13, wherein, The current event is the event that the interactive task in the interactive live stream begins; the current state is an invitation state or an acceptance state; the next state is a connection state; and the process of executing the workflow corresponding to the updated current state through the updated state object includes: The workflow involves executing a countdown to start the interactive task and displaying the countdown information of the interactive task through the state object corresponding to the connection state.

15. The control method according to any one of claims 1-14, wherein, The current event is the event where the countdown to the interactive task in the interactive live stream ends; the current state is the connection state; the next state is the score determination state; and the process of executing the workflow corresponding to the updated current state through the updated state object includes: The score determines the state object corresponding to the state and sends a score determination request to the server. The score determination request is used to request the determination of the score of each streamer based on the data of the multiple streamers participating in the interactive task.

16. The control method according to any one of claims 1-15, wherein, The current event is the completion of the interactive task score determination in the interactive live stream; the current state is the score determination state; the next state is the additional task state; and the process of executing the workflow corresponding to the updated current state through the updated state object includes: The workflow involves executing a countdown to start the additional task and displaying the countdown information of the additional task through the status object corresponding to the additional task status.

17. The control method according to any one of claims 1-16, wherein, The current event is the event that the countdown for the additional task phase corresponding to the interactive task in the interactive live stream ends. The current state is the additional task state, and the next state is the end state. The process of executing the workflow corresponding to the updated current state through the updated state object includes: The workflow of clearing the resources occupied by the interactive task and ending the interactive task is executed through the state object corresponding to the ending state.

18. A control device for interactive live streaming, comprising: The first determining module is configured to determine the current state in response to the occurrence of a current event in an interactive live stream involving multiple anchors, wherein the interactive live stream corresponds to multiple states; The second determining module is configured to determine the next state based on the current event and the current state using the state object corresponding to the current state, wherein different state objects are used to execute the workflow in different states of the interactive live broadcast. The update module is configured to update the current state to the next state; The execution module is configured to execute the workflow corresponding to the updated current state using the state object corresponding to the updated current state.

19. An electronic device comprising: processor; as well as A memory coupled to the processor is used to store instructions that, when executed by the processor, cause the processor to perform the interactive live streaming control method as described in any one of claims 1 to 17.

20. A computer readable storage medium having stored thereon a computer program, wherein, When the program is executed by the processor, it implements the interactive live streaming control method as described in any one of claims 1 to 17.

21. A computer program product, comprising: Instructions, when executed by a processor, implement the interactive live streaming control method as described in any one of claims 1 to 17.

22. A computer program comprising: Instructions, when executed by a processor, implement the interactive live streaming control method as described in any one of claims 1 to 17.