Interactive live broadcast control method and device, electronic equipment and storage medium

By segregating interactive live streaming into distinct phases and using state objects to manage workflows, the system improves stability and accuracy by isolating data and reducing complex logic, addressing the issues of data misuse and execution errors in existing systems.

CN120321422APending Publication Date: 2025-07-15BEIJING ZITIAO NETWORK TECH CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510467910.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-04-14
Publication Date
2025-07-15

AI Technical Summary

Technical Problem

During the interactive live broadcast, due to the complex data interaction of multiple anchors, data use is incorrect, and problems such as misjudgment and misjudgment may occur, resulting in interruption and display errors in the live broadcast.

Method used

The interactive live broadcast process is divided into multiple stages, each stage corresponds to a state, and the corresponding workflow is stored and processed using state objects, and the state transition is triggered by event-triggered state transitions to achieve isolation of different stages and states.

Benefits of technology

It improves the stability and accuracy of interactive live broadcasts, avoids complex logic nesting and conditional judgment errors, and ensures the reliability and stability of the workflow.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120321422A_ABST
    Figure CN120321422A_ABST
Patent Text Reader

Abstract

The invention relates to an interactive live broadcast control method and device, electronic equipment and a storage medium, and relates to the technical field of computers. The interactive live broadcast control method comprises the steps of determining a current state in response to occurrence of a current event in interactive live broadcast participated by multiple anchors, the interactive live broadcast corresponding to multiple states; the next state is determined according to the current event and the current state through the state object corresponding to the current state, and different state objects are used for executing working processes in different states in the interactive live broadcast; updating the current state to the next state; and executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of computer technologies, and particularly to a method, apparatus, electronic device, and storage medium for controlling interactive live streaming. Background Art

[0002] When multiple hosts participate in interactive live streaming, the multiple live streams of the multiple hosts can be merged for playback. At the playback end, the live images of multiple hosts can be displayed simultaneously, and the multiple hosts can interact in real time. Interactive tasks can be set in interactive live streaming. For example, a live PK (battle, competition, etc.) can be used as an interactive task, and multiple hosts can connect through live streaming to compare popularity, such as the number of viewers, the number of likes, etc. Summary of the Invention

[0003] According to some embodiments of the present disclosure, there is provided a method for controlling interactive live streaming, including: in response to the occurrence of a current event in an interactive live streaming participated by multiple hosts, determining a current state, where the interactive live streaming corresponds to multiple states; through a state object corresponding to the current state, determining a next state according to the current event and the current state, where different state objects are used to execute the work processes in different states of the interactive live streaming; updating the current state to the next state; and through the state object corresponding to the updated current state, executing the work process corresponding to the updated current state.

[0004] According to some other embodiments of the present disclosure, there is provided a control apparatus for interactive live streaming, including: a first determination module configured to determine a current state in response to the occurrence of a current event in an interactive live streaming participated by multiple hosts, where the interactive live streaming corresponds to multiple states; a second determination module configured to determine a next state according to the current event and the current state through a state object corresponding to the current state, where different state objects are used to execute the work processes in different states of the interactive live streaming; an update module configured to update the current state to the next state; and an execution module configured to execute the work process corresponding to the updated current state through the state object corresponding to the updated current state.

[0005] According to some embodiments of the present disclosure, there is provided an electronic device, including: a processor; and a memory coupled to the processor for storing instructions, which when executed by the processor, cause the processor to execute the method for controlling interactive live streaming according to any one of the embodiments of the present disclosure.

[0006] According to some embodiments of the present disclosure, there is provided a computer-readable storage medium having a computer program stored thereon, which when executed by a processor, executes the method for controlling interactive live streaming according to any one of the embodiments of the present disclosure.

[0007] Other features, aspects, and advantages of the present disclosure will become apparent from the following detailed description of the exemplary embodiments of the present disclosure with reference to the accompanying drawings. Description of the Drawings

[0008] Embodiments of the present disclosure will be described below with reference to the accompanying drawings. It should be understood that the drawings in the following description only relate to some embodiments of the present disclosure and do not constitute a limitation to the present disclosure. In the drawings:

[0009] Figure 1 Schematic flowchart of a control method for interactive live broadcast showing some embodiments of the present disclosure;

[0010] Figure 2 Schematic flowchart of a control method for interactive live broadcast showing some other embodiments of the present disclosure;

[0011] Figure 3 Schematic flowchart of a control method for interactive live broadcast showing some further embodiments of the present disclosure;

[0012] Figure 4 Schematic flowchart of a control method for interactive live broadcast showing some yet further embodiments of the present disclosure;

[0013] Figure 5 Schematic structural diagram of a control device for interactive live broadcast showing some embodiments of the present disclosure;

[0014] Figure 6 Schematic structural diagram of an electronic device showing some embodiments of the present disclosure;

[0015] Figure 7 Schematic structural diagram of an electronic device showing some other embodiments of the present disclosure. Detailed Embodiments

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

[0017] It should be understood that the steps recorded in the method embodiments of the present disclosure can be executed in different orders and / or in parallel. In addition, the method embodiments may include additional steps and / or omit the steps shown. The scope of the present disclosure is not limited in this regard. Unless otherwise specifically stated, the relative arrangement of the steps set forth in these embodiments should be construed as merely exemplary and does not limit the scope of the present disclosure.

[0018] As used in this disclosure, the term "comprising" and its variants are open-ended terms meaning including at least the subsequent element / feature, but not excluding other elements / features, that is, "including but not limited to". The term "based on" means "at least partially based on".

[0019] It should be noted that concepts such as "first", "second", etc. mentioned in this disclosure are only used to distinguish different devices, modules or units, and are not used to define the order of functions performed by these devices, modules or units or their interdependent relationships. Unless otherwise specified, concepts such as "first", "second", etc. are not intended to imply that the objects so described must be in a given order in terms of time, space, ranking or any other way.

[0020] It should be noted that the modifications of "one" and "plural" mentioned in this disclosure are illustrative rather than restrictive. Those skilled in the art should understand that unless clearly specified otherwise in the context, it should be understood as "one or more".

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

[0022] The embodiments of this disclosure will be described in detail below in conjunction with the accompanying drawings, but 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. In addition, in one or more embodiments, specific features, structures or characteristics can be combined in any suitable manner that will be clear to those of ordinary skill in the art from this disclosure.

[0023] The inventors found that the overall business logic (workflow) of the process from the start to the end of an interactive live broadcast is complex, and there may be a large amount of data interaction between multiple hosts. Deploying the entire business logic of the interactive live broadcast in the same logical container, and also recording a large amount of data in the same logical container, there is no isolation between different parts of the business logic. When different parts of the business logic are executed, it is very likely that incorrect use of data will lead to misjudgment, missed judgment, etc., resulting in incorrect execution of the business logic and problems such as interruption of the interactive live broadcast and display errors. For example, after a host sends an invitation message, information such as invite_uid (the id of the inviter) and battle_id (the id of this pk) will be recorded locally. If this host receives an invitation message from another host after sending the invitation, there will be data of two invitation messages. If the data of these two invitation messages is not used correctly in the subsequent business logic, problems may occur, and there will be a large amount of such data in the actual interactive live broadcast scenario.

[0024] The inventors' research found that the process of an interactive live broadcast from start to end can be divided into multiple stages, and different stages can be distinguished by different events. Based on this feature, the present disclosure proposes a control method for an interactive live broadcast, which divides the interactive live broadcast into multiple stages, each stage corresponds to a state, each state corresponds to a state object, and different state objects are used to execute the workflow in different states. Each state object can be used as a logical container to store the workflow in the corresponding state and process the data in the corresponding state input. The isolation of the workflows in different stages and different states in the interactive live broadcast is achieved. This makes the overall workflow clearer and more stable, avoiding the nesting of complex logics and a large number of conditional judgments. And the workflow in each state object becomes simpler and more stable. The transition between different states is triggered by different events, making the overall workflow more stable, without chaos, improving the reliability and stability of the execution of the overall workflow in the interactive live broadcast, and thus improving the stability and accuracy of the interactive live broadcast.

[0025] The following will describe the control method of the interactive live broadcast of the present disclosure in conjunction with Figures 1 to 4 The control method of the interactive live broadcast of the present disclosure can be executed by a client.

[0026] Figure 1 It is a flowchart of some embodiments of the control method of the interactive live broadcast of the present disclosure. As Figure 1 shown, the method of this embodiment includes: steps S102 to S108.

[0027] In step S102, in response to the occurrence of the current event in the interactive live broadcast participated by multiple hosts, determine the current state.

[0028] Multiple hosts can conduct connection interactions in the interactive live broadcast. The current event can be one of multiple predefined events in the interactive live broadcast. The interactive live broadcast is divided into multiple stages corresponding to multiple states, and different stages are triggered by different events. For different types of interactive live broadcasts, multiple stages and multiple states can be divided, and multiple events can be determined according to the characteristics of the overall process of the interactive live broadcast. For example, in some interactive live broadcasts, there are interactive tasks (such as PK), then multiple stages and multiple states of the interactive live broadcast need to be divided according to different processes such as the start, end, score determination, and additional tasks included in the interactive task. Some interactive live broadcasts do not include interactive tasks (such as co-hosting), then the stages and states corresponding to these processes without interactive tasks are not included.

[0029] For example, an engine (or referred to as a Machine) can be configured to store the current state of the interactive live broadcast. In response to the sending of the current event, the current state can be determined through the engine.

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

[0031] After determining the current state, the current event is distributed to the state object corresponding to the current state, and it is this state object that determines the next state. The judgment logic for the next state can be stored in each state object, and the inputs to this judgment logic are the current state and the current event. The current event can be an operation performed by the host, receiving a message corresponding to the other host, etc., not limited to the examples given. For example, the current event can be that the host corresponding to the client sends an invitation message. 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 the use of data.

[0032] 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.

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

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

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

[0036] The workflow can also be referred to as a workflow or business logic, etc., and refers to a series of logical processing processes used to implement specific business functions and rules. After the current state is updated, it enters a new state object and executes a new workflow. The workflow stored in each state object can be configured according to the methods that need to be executed in the stage corresponding to the state object in the interactive live broadcast.

[0037] 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. Through the state object corresponding to the current state, according to the current event and the current state, the next state can be determined, and then the current state can be updated to the next state. Through the state object corresponding to the updated current state, the workflow corresponding to the updated current state is executed. Since different state objects are used to execute the workflows in different states, each state object can be used as a logical container to store the workflows in the corresponding state and process the data in the corresponding state input. The isolation of the workflows in different stages and different states in the interactive live broadcast is realized. The overall workflow is made clearer and more stable, avoiding the nesting of complex logics and a large number of conditional judgments. The conversion between different states is triggered by different events, making the overall workflow more stable without chaos, improving the reliability and stability of the execution of the overall workflow in the interactive live broadcast, and thus improving the stability and accuracy of the interactive live broadcast.

[0038] An entry component (for example, a Fragment component) can be configured in the client to receive the current event. The current event is passed to the engine through the entry component, and the engine determines the current state. Then the engine can call different state objects to process the current event. The following describes how to determine the next state according to the current event and the current state through the state object corresponding to the current state.

[0039] In some embodiments, through 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 according to the current event and the current state. In response to the current event being an invalid event, the current event is discarded.

[0040] Each state can correspond to one or more valid events. For example, after the host sends an invitation message, the current state is the invitation state. In the invitation state, when the current event received is that the other host accepts or rejects the invitation, it is a valid event. If a message indicating that the score determination is completed is received, it is an invalid event.

[0041] By setting and judging valid events, it can be avoided that the state object corresponding to the current state processes invalid events, resulting in errors, improving the accuracy of determining the next state, and thus improving the accuracy of the execution of the overall workflow.

[0042] Multiple states and multiple state objects can have a one-to-one correspondence. In an interactive live broadcast, there are some consecutive states that share the same interface for collecting the host's operations. To reduce data transmission and the complexity of the workflow, multiple consecutive states that share the same interface for collecting the host's operations can be configured to correspond to the same state object. For example, the invitation interface may include an invitation control for collecting the host's operations to invite other hosts to join the interactive live broadcast. The stage of displaying the invitation interface can correspond to the preparation state, which converts to the invitation state after the host triggers the invitation control. The preparation state and the invitation state can correspond to the same state object, and the data of the invitation interface can be shared. Another example is that the invitation message interface may include an acceptance control for collecting the host's operations to accept other hosts to join the interactive live broadcast. The stage of displaying the invitation message interface can correspond to the receiving state, which converts to the acceptance state after the host triggers the acceptance control. The receiving state and the acceptance state can correspond to the same state object, and the data of the invitation message interface can be shared.

[0043] Since some state objects can correspond to only one state, and some state objects can correspond to multiple states, therefore, when executing the workflow corresponding to the updated current state through 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 previous current state.

[0044] In some embodiments, 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, create the state object corresponding to the updated current state through the registry.

[0045] The registry can be used to store and manage information related to state object creation. For example, the registry contains information required to create different state objects, such as class names, constructor parameters, etc. Through the registry, it is possible to more conveniently and accurately create corresponding state objects according to different current states, realizing centralized management and control of object creation.

[0046] In some embodiments, in response to the current state and the updated current state corresponding to the same state object, send a state update notification to the state object corresponding to the current state; through the state object corresponding to the current state, execute the workflow corresponding to the updated current state.

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

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

[0049] For the case where the number of states corresponding to different state objects is inconsistent, through the method of the above embodiments, the state object corresponding to the updated current state can be determined more accurately, so as to execute the subsequent workflow more accurately.

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

[0051] The state object can be configured as active and inactive. The active state object can execute the workflow, while the inactive state object does not execute the workflow. When entering the state object corresponding to the current state, the state object is set as active, and when leaving the state object corresponding to the current state, the state object is set as inactive. It can avoid the execution of incorrect workflows caused by incorrect judgment and selection of state objects, and improve the accuracy and stability of the overall workflow execution.

[0052] The client may include an entrance component, an engine, a registry, and multiple state objects. The information interaction process among the entrance component, the engine, the registry, and the multiple state objects will be described below in combination with Figure 2 Describe the information interaction process among the entrance component, the engine, the registry, and the multiple state objects.

[0053] Figure 2 This is a flowchart of some embodiments of the control method for interactive live broadcast of the present disclosure. As Figure 2 shown, the method of this embodiment includes: steps S202 to S212.

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

[0055] For example, the entrance component is a Fragment component, and the current event is the operation of the host, receiving a message from the other host, etc. Not all events must be obtained through the entrance component. For example, the countdown end event of the interactive task and the countdown end event of the additional task stage corresponding to the interactive task can be obtained by the state object that executes the countdown and sent to the engine.

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

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

[0058] 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. If the current state and the updated current state correspond to different state objects, the registry is searched.

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

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

[0061] In the above embodiments, the current event is obtained by the entry component, the engine is responsible for managing the current state, and different state objects are called to execute the corresponding work processes. The registry manages the creation of each state object. Through the cooperation and interaction of each part, a more accurate and stable business process is formed as a whole, improving the stability and accuracy of the interactive live broadcast.

[0062] In the case where the interactive live broadcast includes interactive tasks, the interactive live broadcast can be set to correspond to at least one of the following multiple states: initial state (None), preparing state (Preparing), invited state (Invited), received state (Received), accepted state (Accepted), connecting state (Connecting), score determination state (Settlement), additional task state (Punishment), and end state (Finished).

[0063] The initial state is the state before the interactive live broadcast or interactive task is initiated. The preparing state indicates the state after the first host triggers the start control of the interactive live broadcast. The invited state indicates the state after the first host triggers the operation of inviting other hosts to join the interactive live broadcast. The received state indicates the state after the client of the first host receives the invitation message sent by other hosts. The accepted state indicates the state after the first host accepts the invitation of other hosts to join the interactive live broadcast. The connecting state indicates the state after the interactive task is successfully connected and starts. The score determination state indicates the state when the countdown of the interactive task ends and the score begins to be determined. The additional task state indicates the state when the score determination is completed and the additional task stage begins. The end state indicates the state when the interactive task ends. The rejected state indicates the state after the first host rejects the invitation of other hosts to join the interactive live broadcast. The cancelled state indicates the state after the first host cancels the operation of inviting other hosts to join the interactive live broadcast. The interrupted state indicates the state when the interactive live broadcast is interrupted.

[0064] The following describes the specific methods for how a state object executes a workflow in different states.

[0065] In some embodiments, the current event is an operation event of a start control for an interactive live broadcast triggered by the first host among multiple hosts. The current state is the initial state, and the next state is the preparation state. Through the state object corresponding to the preparation state, the workflow of displaying an invitation interface is executed. The invitation interface includes an invitation control, and the invitation control is used to invite other hosts other than the first host to join the interactive live broadcast.

[0066] The start control for the interactive live broadcast can also be the start control for an interactive task. The first host can trigger the start of an interactive live broadcast and an interactive task by triggering the start control, or can trigger the start of an interactive task by triggering the start control during the interactive live broadcast. The state object (StateInviter) corresponding to the preparation state can trigger the pop-up and display of the invitation interface. The first host can invite the second host to join the interactive live broadcast or interactive task by triggering the invitation control. In some embodiments, the current event is an operation event of the first host inviting the second host to join the interactive live broadcast among multiple hosts. The current state is the preparation state, and the next state is the invitation state. Through the state object corresponding to the preparation state, according to the operation event of the first host inviting the second host to join the interactive live broadcast, the invitation interface is called to send an invitation message to the server. The invitation message includes the identifier of the second host. In response to the successful invocation of the invitation interface, through the state object corresponding to the preparation state, according to the preparation state, it is determined that the next state is the invitation state. Through the state object corresponding to the invitation state, the workflow of closing the invitation interface is executed.

[0067] The second host can be one or more. For example, in response to the first host triggering the invitation control, the information of multiple candidate hosts is displayed. In response to the first host's selection operation of the second host, the current event is determined. The state object corresponding to the preparation state executes the corresponding workflow, that is, calls the invitation interface of the server to send an invitation message. The invitation message needs to be sent from the client of the first host to the client of the second host through the server. In the case of successful invocation of the invitation interface, the next state is determined to be the invitation state. In the case of failed invocation of the invitation interface, the workflow of displaying a failure message can be executed.

[0068] The state object corresponding to the invitation state can execute the workflow of closing the invitation interface. The preparation state and the invitation state can correspond to the same state object (StateInviter).

[0069] In the invitation state, if the current event is an operation event of the first host canceling the invitation, the next state can be the end state.

[0070] In some embodiments, the current event is an event where the first host among multiple hosts receives an invitation message sent by the second host. The current state is the initial state, and the next state is the receiving state. Through the state object corresponding to the receiving state, the workflow of displaying the invitation message interface is executed. The invitation message interface includes an acceptance control, and the acceptance control is used to accept the invitation from the second host to join the interactive live broadcast.

[0071] The first host can act as the initiator or the recipient. When the first host receives an invitation message sent by the second host, it changes 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 information of the first host, an acceptance control, and a rejection control can be displayed in the invitation message interface. The first host can join the interactive live broadcast or interactive task by triggering the acceptance control.

[0072] If the first host sends an invitation message and then receives an invitation message sent by the second host, the current state is the invitation state, and the next state is changed to the receiving state. The subsequent workflow is then executed by the state object corresponding to the receiving state, without causing confusion.

[0073] In some embodiments, the current event is an operation event where the first host among multiple hosts accepts the invitation from the second host to join the interactive live broadcast. The current state is the receiving state, and the next state is the acceptance state. Through the state object corresponding to the receiving state, the workflow of calling the acceptance interface of the server to send an acceptance invitation message is executed. The state object corresponding to the receiving state can also receive a message indicating that the call to the acceptance interface is successful.

[0074] The state object (StateInvitee) corresponding to the receiving state executes the corresponding workflow, that is, calls the acceptance interface of the server to send an acceptance invitation message. The acceptance invitation message needs to be sent from the client of the first host to the client of the second host through the server. When the call to the acceptance interface is successful, the next state is determined to be the acceptance state. When the call to the acceptance interface fails, the workflow of displaying a failure message can be executed.

[0075] In the receiving state, if the current event is an operation event where the first host rejects the invitation from the second host, the next state can be the end state.

[0076] The state object corresponding to the acceptance state can execute the workflow of closing the invitation message interface. The receiving state and the acceptance state can correspond to the same state object (StateInvitee).

[0077] It is also possible to receive the status object corresponding to the status. According to the operation event that the first host accepts the invitation of the second host to join the interactive live broadcast, call the acceptance interface of the server to send an acceptance invitation message; in response to the successful invocation of the acceptance interface, determine the next status as the acceptance status according to the received status through the status object corresponding to the received status; execute the workflow of closing the invitation message interface through the status object corresponding to the acceptance status.

[0078] In some embodiments, the current event is the event that the interactive task in the interactive live broadcast starts, the current status is the invitation status or the acceptance status, and the next status is the connection status. Through the status object corresponding to the connection status, execute the workflow of starting the countdown of the interactive task and displaying the information of the countdown of the interactive task.

[0079] The event that the interactive task starts can be receiving the start message sent by the server. In the invitation status or the acceptance status, if the first host and the second host are successfully connected, the status can be changed to the connection status, and the interactive live broadcast or the interactive task starts. The interactive task corresponds to a preset duration. In response to the start of the interactive task, the status object corresponding to the connection status (StateConnecting) starts the countdown of the interactive task and displays the information of the countdown of the interactive task.

[0080] In some embodiments, the current event is the event that the countdown of the interactive task in the interactive live broadcast ends, the current status is the connection status, and the next status is the score determination status. Through the status object corresponding to the score determination status, send a score determination request to the server, where the score determination request is used to request to determine the score of each host according to the data of multiple hosts participating in the interactive task.

[0081] When the countdown of the interactive task ends, send a score determination request to the server through the status object corresponding to the score determination status (StateSettlement). For example, the score determination request can be used to request the server to determine the score of each host according to various data such as the number of likes, the number of viewers, and the score of the first host and the second host in the interactive task, and compare them to obtain a comparison result (score determination result).

[0082] It is also possible to call the score determination interface of the server to send a score determination message according to the event that the countdown of the interactive task ends through the status object corresponding to the connection status, where the score determination request is used to request to determine the score of each host according to the data of multiple hosts participating in the interactive task; in response to the successful invocation of the score determination interface, determine the next status as the score determination status according to the connection status through the status object corresponding to the connection status; execute the workflow of waiting for the score determination result through the status object corresponding to the score determination status.

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

[0084] In some embodiments, the current event is an event that the determination of the interaction task score in the interactive live broadcast is completed. The current state is the score determination state, and the next state is the additional task state. Through the state object corresponding to the additional task state, the workflow of starting the countdown of the additional task and displaying the information of the countdown of the additional task is executed.

[0085] The interaction task can include an additional task stage. The additional task can be completed by the party that fails in the interaction task. The additional task stage is configured with a corresponding duration. The state object (StatePunishment) corresponding to the additional task state can start the countdown of the additional task and display the information of the countdown of the additional task.

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

[0087] When the additional task stage ends, it is converted from the additional task state to the end state. Through the state object (StateFinished) corresponding to the end state, the interaction task or the interactive live broadcast can be ended, and the data stored in each state object can be cleared.

[0088] In each of the above embodiments, the interactive live broadcast is divided 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, improving the stability and accuracy of the interactive live broadcast.

[0089] The following takes two live streamers as an example and combines Figure 3 to describe the process of the interactive live broadcast.

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

[0091] In step S301, an operation event of receiving the first live streamer triggering the start control of the interactive live broadcast is used as the current event.

[0092] 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 ready state and notifies the engine that the next state is the ready state. The engine creates the state object corresponding to the ready state through the registry.

[0093] In step S303, the invitation interface is displayed through the state object corresponding to the ready state.

[0094] The entry method corresponding to the state object (state instance) can be called to enter the state object and execute the workflow of displaying the invitation interface.

[0095] In step S304, the operation event of the invitation control in the invitation interface triggered by the first host is received as the current event.

[0096] In step S305, the state object corresponding to the ready state calls the invitation interface of the server to send an invitation message.

[0097] The invitation control can be managed by the state object corresponding to the ready state. The operation event of the invitation control in the invitation interface triggered by the first host can be directly called back to the state object corresponding to the ready state without passing through the engine.

[0098] In step S306, the state object corresponding to the ready state receives the message indicating that the call to the invitation interface of the server was successful.

[0099] In step S307, the state object corresponding to the ready 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 in the ready state to update the current state. The state object corresponding to the ready state closes the invitation interface. The ready state and the invitation state correspond to the same state object.

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

[0101] Step S308 can be before S307.

[0102] 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 creates the state object corresponding to the receiving state through the registry.

[0103] The engine, state object, and registry are configured within the client. Therefore, the first client and the second client respectively correspond to different engines, state objects, and registries.

[0104] In step S310, the invitation message interface is displayed through the state object corresponding to the receiving state.

[0105] In step S311, an operation event of an acceptance control in the invitation message interface triggered by the second host is received as the current event.

[0106] In step S312, the state object corresponding to the receiving state determines that the next state is the acceptance state and notifies the engine that the next state is the acceptance state. The engine notifies the state object in the receiving state to update the current state, and the state object corresponding to the receiving state closes the invitation message interface. The receiving state and the acceptance state correspond to the same state object.

[0107] The acceptance control can be managed by the state object corresponding to the receiving state. The operation event of the acceptance control in the invitation message interface triggered by the second host can be directly called back to the state object corresponding to the receiving state without passing through the engine.

[0108] In step S313, the state object corresponding to the acceptance state calls the acceptance interface of the server to send an acceptance invitation message.

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

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

[0111] In step S315, the current event is passed to the engine, and then passed by the engine 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 creates the state object corresponding to the connection state through the registry.

[0112] In step S316, through the state object corresponding to the connection state, the countdown of the interaction task is started and the information of the countdown of the interaction task is displayed.

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

[0114] In step S318, the current event is passed to the engine, and then passed by the engine to the state object corresponding to the acceptance 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 creates the state object corresponding to the connection state through the registry.

[0115] In step S319, through the state object corresponding to the connection state, the countdown of the interaction task is started and the information of the countdown of the interaction task is displayed.

[0116] Steps S314 - S316 and steps S317 - S319 can be executed in parallel without a specific order.

[0117] In step S320, in response to the expiration of the interaction task countdown, the event of the expiration of the interaction task countdown is determined as the current event.

[0118] In step S321, the current event is passed to the engine, and the engine 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 creates a state object corresponding to the score determination state through the registry.

[0119] In step S322, a score determination message is sent to the server through the state object corresponding to the score determination state.

[0120] The score determination interface of the server can be called to send the score determination message, and the state object corresponding to the score determination state can also receive the message indicating the successful invocation of the score determination interface.

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

[0122] In step S324, the current event is passed to the engine, and the engine 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 a state object corresponding to the additional task state through the registry.

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

[0124] In step S326, in response to the expiration of the additional task phase countdown, the event of the expiration of the additional task phase countdown is used as the current event.

[0125] In step S327, the current event is passed to the engine, and the engine passes it to the state object corresponding to the additional task state. The state object corresponding to the additional task state calls the end interface of the server to send an end message.

[0126] In step S328, the state object corresponding to the additional task state receives the message indicating the successful invocation of the end interface sent by the server.

[0127] In step S329, the state object corresponding to the additional 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 a state object corresponding to the end state through the registry.

[0128] In step S330, through the state object corresponding to the end state, the resources occupied by the interaction task are cleared and the interaction task is ended.

[0129] Steps S331 - S341 are similar to steps S320 - S330, but the execution subjects are different. Steps S331 - S341 and steps S320 - S330 can be executed in parallel without a specific order.

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

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

[0132] In step S333, a score determination message is sent to the server through the state object corresponding to the score determination state.

[0133] The score determination interface of the server can be called to send the score determination message, and the state object corresponding to the score determination state can also receive the message indicating the successful call of the score determination interface.

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

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

[0136] In step S336, through the state object corresponding to the additional task state, the countdown of the additional task process is started and the information of the countdown of the additional task is displayed.

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

[0138] In step S338, the current event is passed to the engine, and then the engine passes it to the state object corresponding to the additional task state. The state object corresponding to the additional task state calls the end interface of the server to send an end message.

[0139] In step S339, the state object corresponding to the additional task status receives the message indicating successful invocation of the end interface sent by the server.

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

[0141] In step S341, through the state object corresponding to the end state, the resources occupied by the interactive task are cleared and the interactive task is ended. The current state can also be updated to the initial state.

[0142] In the above embodiment, one interactive task is taken as an example. The interactive live broadcast can include multiple interactive tasks. For example, the interactive task is a battle task (PK). Multiple hosts can initiate multiple battle tasks.

[0143] In some embodiments, each of the multiple interactive tasks 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.

[0144] In the case where the interactive task includes multiple interactive tasks, an engine can be configured for each interactive task, and different engines are used to call different state instances of the same state object. This can avoid the confusion and intersection of the work processes in different interactive tasks and improve the stability and accuracy of the overall work process.

[0145] In some embodiments, in response to the occurrence of the current event in the interactive live broadcast, the interactive task corresponding to the current event is determined; through the engine corresponding to the interactive task, the current state of the interactive task is determined.

[0146] For example, after receiving the current event, the interface component needs to determine the interactive task to which the current event belongs, and then send the current event to the engine corresponding to the belonging interactive task, thereby improving the accuracy of the subsequent execution work process.

[0147] In some embodiments, through the engine corresponding to the interactive task, the state instance corresponding to the current state of the interactive task is called. According to the current event and the current state of the interactive task, the next state of the interactive task is determined; through the engine corresponding to the interactive task, the state instance corresponding to the updated current state of the interactive task is called, and the work process corresponding to the updated current state is executed.

[0148] The engine corresponding to the interactive task is only responsible for calling each state instance corresponding to the interactive task to determine the next state or execute the corresponding workflow, so as to decouple and isolate the workflows of different interactive tasks, improving the accuracy and stability of the workflow execution of each interactive task. The state object in the foregoing embodiments may also be a state instance.

[0149] 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, 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.

[0150] In the case of multiple interactive tasks, the subsequent interactive task is created in the stage corresponding to the previous interactive task entering the preset state. For example, the preset state is an additional task state. The second engine can be created through an entry component. After creating the second engine and after the additional task stage ends, the resources occupied by the first engine can be released, or after starting the second interactive task, the additional task stage stops and the resources occupied by the first engine are released. Subsequent received events can be sent only to the second engine.

[0151] For example, an interactive live broadcast includes a first interactive task. The first interactive task 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. Among them, the current state of the first interactive task is stored in the first engine; call the state instance corresponding to the current state of the first interactive task, and determine the next state of the first interactive task according to the current event and the current state of the first interactive task; update the current state of the first interactive task stored in the first engine to the next state of the first interactive task through the first engine; call the state instance corresponding to the updated current state of the first interactive task, and execute the workflow corresponding to the state instance corresponding to the updated current state of the first interactive task.

[0152] For example, in response to the first interactive task entering a stage corresponding to a preset state, a second engine is created. The second engine corresponds to a 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. Among them, the current state of the second interactive task is stored in the second engine; call the state instance corresponding to the current state of the second interactive task, and determine the next state of the second interactive task according to the current event and the current state of the second interactive task; update the current state of the second interactive task stored in the second engine to the next state of the second interactive task through the second engine; update the current state of the second interactive task stored in the second engine to the next state of the second interactive task through the second engine; call the state instance corresponding to the updated current state of the second interactive task, and execute the workflow corresponding to the state instance corresponding to the updated current state of the second interactive task.

[0153] Through the method of the above embodiments, the initiation and execution of multiple interactive tasks can be achieved, and the stability and accuracy of the execution of multiple interactive tasks can be improved.

[0154] The following combines Figure 4 to describe the overall process of interactive live broadcast in the case of multiple interactive tasks.

[0155] Figure 4 It is a flowchart of some other embodiments of the control method for the interactive live broadcast of the present disclosure. As Figure 4 shown, the method of this embodiment includes: steps S401 to S417.

[0156] In step S401, in response to the operation of the first host starting the broadcast, a main engine on the first host side is created.

[0157] In step S402, in response to the operation of the second host starting the broadcast, a main engine on the second host side is created.

[0158] The main engine may be the first engine in the foregoing embodiments.

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

[0160] In step S404, an invitation interface is displayed on the client of the second host.

[0161] In step S405, in response to the second host triggering the acceptance control, a message accepting the invitation is sent.

[0162] In step S406, the first interactive task starts.

[0163] In step S407, the countdown of the first interactive task ends.

[0164] In step S408, the additional task stage is started.

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

[0166] In step S410, a secondary engine on the second host side is created.

[0167] The secondary engine may be the second engine in the foregoing embodiments.

[0168] In step S411, in response to the first host triggering the replay control, an invitation message is sent to the second host.

[0169] In step S412, an invitation interface is displayed on the client of the second host.

[0170] In step S413, in response to the second host triggering the acceptance control, a message accepting the invitation is sent.

[0171] In step S414, the second interactive task starts.

[0172] The additional task phase can stop.

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

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

[0175] In step S417, the original main engines on the first host side and the second host side are destroyed.

[0176] In the above embodiments, the interaction process between the main engine, the sub-engine, the state object, and the registry is omitted. One can refer to the previous embodiments and will not elaborate here.

[0177] The interface file corresponding to the engine can be configured for other components to call the interface of the engine to transmit information. For example, the engine interface file can include the identifier of the engine to distinguish different engines, can include the types of interactive tasks, such as two-person PK, multi-person PK, etc., can include the registry, and can include the state object currently held. The input method can also be configured in the engine interface file, and when the entry component receives any event, it will input to the engine. The state conversion method can also be configured in the engine interface file, and the state object calls the state conversion method to convert the current state to the next state. The abort method can also be configured in the engine interface file, which can be used to interrupt the interactive live broadcast.

[0178] The interface file of the state object can be configured for other components to call the interface of the state object to transmit information. For example, the state object interface file can weakly hold the identifier of the engine, can include the state corresponding to the state object, and can include whether the state object is in the active state. The state object interface file can also include the entry method, the input method, the leave method, and the abort method. After entering the state object, the corresponding workflow can be executed, and when leaving the state object, the resources occupied by the state object can be cleared.

[0179] By configuring the interface file of the engine and the interface file of the state object, the call of the engine and the state object can be realized more accurately.

[0180] The present disclosure also provides a control device for interactive live broadcast, which will be described below in combination with Figure 5 The control device for interactive live broadcast can be set in the host's terminal.

[0181] Figure 5 For the structural diagrams of some embodiments of the control device for interactive live broadcast of the present disclosure. As Figure 5As shown, the control device 50 for interactive live broadcast in this embodiment includes: a first determination module 510, a second determination module 520, an update module 530, and an execution module 540.

[0182] The first determination module 510 is configured to determine the current state in response to the occurrence of a current event in an interactive live broadcast participated by multiple hosts, where the interactive live broadcast corresponds to multiple states.

[0183] The second determination module 520 is configured to determine the next state according to the current event and the current state through the state object corresponding to the current state, where different state objects are used to execute the workflow in different states of the interactive live broadcast.

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

[0185] 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.

[0186] In some embodiments, the second determination 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 according to the current event and the current state; in response to the current event being an invalid event, discard the current event.

[0187] 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, create the state object corresponding to the updated current state through a registry.

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

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

[0190] In some embodiments, the interactive live broadcast includes a plurality of interactive tasks, each of the 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. The plurality of states corresponding to the plurality of interactive tasks are the same, and different interactive tasks correspond to different state instances of the same state object.

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

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

[0193] In some embodiments, 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.

[0194] In some embodiments, the current event is an operation event in which a first host among a plurality of hosts triggers an initiation control of the interactive live broadcast. The current state is an initial state, and the next state is a preparation state. The execution module 540 is configured to, through the state object corresponding to the preparation state, execute the workflow of displaying an invitation interface, where the invitation interface includes an invitation control, and the invitation control is used to invite other hosts other than the first host to join the interactive live broadcast.

[0195] In some embodiments, the current event is an operation event in which the first host among a plurality of hosts invites the second host to join the interactive live broadcast. The current state is a preparation state, and the next state is an invitation state. The second determination module 520 is configured to, through the state object corresponding to the preparation state, call the invitation interface of the server to send an invitation message according to the operation event that the first host invites the second host to join the interactive live broadcast, where the invitation message includes the identifier of the second host; in response to the successful invocation of the invitation interface, through the state object corresponding to the preparation state, determine that the next state is an invitation state according to the preparation state; the execution module 540 is configured to, through the state object corresponding to the invitation state, execute the workflow of closing the invitation interface.

[0196] In some embodiments, the current event is an event that the first host among a plurality of hosts receives an invitation message sent by the second host, the current state is the initial state, the next state is the receiving state, and 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, wherein the invitation message interface includes an acceptance control for accepting the invitation of the second host to join the interactive live broadcast.

[0197] In some embodiments, the current event is an operation event that the first host among a plurality of hosts accepts the invitation of the second host to join the interactive live broadcast, the current state is the receiving state, the next state is the acceptance state, and the execution module 540 is configured to execute the workflow of calling the acceptance interface of the server to send an acceptance invitation message through the state object corresponding to the acceptance state.

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

[0199] In some embodiments, the current event is an 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, wherein the score determination request is used to request to determine the score of each host according to the data of multiple hosts participating in the interactive task.

[0200] In some embodiments, the current event is an event that the score determination of the interactive task in the interactive live broadcast is completed, 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 the workflow of starting the countdown of the additional task and displaying the information of the countdown of the additional task through the state object corresponding to the additional task state.

[0201] In some embodiments, the current event is an 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, the next state is the end state, and 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.

[0202] Figure 6 A block diagram of an electronic device according to some embodiments of the present disclosure is shown.

[0203] The memory 61 is used to store one or more computer-readable instructions. The 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. For example, the memory 61 may store an operating system, application programs, a boot loader, a database, and other programs, and may also store various application programs and various data, etc.

[0204] The processor 62 is used to run the computer-readable instructions to implement the control method of interactive live broadcast described in any of the foregoing embodiments. For the specific implementation of each step of the method, reference may be made to the foregoing embodiments, and the repeated parts will not be elaborated here.

[0205] The processor 62 may be configured to execute Figures 1 to 4 the steps in. The processor 62 may be embodied as various processing devices, such as a central processing unit (CPU), a network processor (NP), etc.; it may 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, discrete hardware components. The central processing unit (CPU) may be of the X86 or ARM architecture, etc.

[0206] The processor 62 and the memory 61 may communicate with each other directly or indirectly. For example, the processor 62 and the memory 61 may communicate through a network. The network may include a wireless network, a wired network, and / or any combination of a wireless network and a wired network. The processor 62 and the memory 61 may also communicate with each other through a system bus, and the present disclosure does not limit this.

[0207] It should be noted that Figure 6 the components of the electronic device 6 shown are exemplary and not restrictive. According to actual application needs, the electronic device 6 may also have other components. The processor 62 may control other components in the electronic device 6 to perform desired functions.

[0208] The electronic device 6 may be implemented in a software, firmware, and / or hardware manner and may be integrated in a device installed with relevant application programs.

[0209] Figure 7 A block diagram of an electronic device according to other embodiments of the present disclosure is shown.

[0210] Figure 7 The electronic device 7 shown may be a computer system with a dedicated hardware structure and can perform corresponding functions when installed with relevant application programs.

[0211] The electronic device includes, but is not limited to, mobile terminals such as smart phones, laptop computers, personal digital assistants (PDAs), tablet personal computers (Tablet PCs), portable multimedia players (PMPs), in-vehicle terminals (such as in-vehicle navigation terminals), wearable devices, etc., and fixed terminals such as digital TVs, desktop computers, etc.

[0212] As Figure 7 shown, the central processing unit (CPU) 71 executes various processes according to the programs stored in the read-only memory (ROM) 72 or the programs loaded from the storage section 78 into the random access memory (RAM) 73. In the RAM 73, data required when the CPU 71 executes various processes, etc. is stored as needed. The central processing unit is merely exemplary, and it 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 Figure 7 the ROM 72, RAM 73, and storage section 78 are shown separately, one or more of them can be combined, or located in the same or different memories or storage modules.

[0213] The CPU 71, ROM 72, and RAM 73 are connected to each other via the bus 74. The input / output interface 75 is also connected to the bus 74.

[0214] The following components are connected to the input / output interface 75: an input section 76, such as a touch screen, touchpad, keyboard, mouse, image sensor, microphone, accelerometer, gyroscope, etc.; an output section 77, including a display, such as a cathode ray tube (CRT), liquid crystal display (LCD), speaker, vibrator, etc.; a storage section 78, including a hard disk, magnetic tape, etc.; and a communication section 79, including a network interface card such as a LAN card, modem, etc. The communication section 79 allows communication processing to be performed via a network such as the Internet. It is easy to understand that although Figure 7 some parts in the electronic device 7 are shown to communicate via the bus 74, they can also communicate via a network or other means, where the network can include a wireless network, a wired network, and / or any combination of a wireless network and a wired network.

[0215] As needed, the drive 710 is also connected to the input / output interface 75. A removable medium 711 such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc. is mounted on the drive 710 as needed, so that a computer program read therefrom is installed in the storage section 78 as needed.

[0216] In the case where the above-described series of processes are implemented by software, a program constituting the software can be installed from a network such as the Internet or a storage medium such as the removable medium 711.

[0217] According to an embodiment of the present disclosure, the processes described above with reference to the flowcharts can be implemented as a computer software program. For example, some embodiments of the present disclosure include a computer program product that, when run on a computer, causes the computer to implement the method described in any of the foregoing embodiments. The computer program product includes computer instructions carried on a computer-readable medium, including program code for performing the method shown in the flowchart. In such an embodiment, the computer instructions can be downloaded and installed from the network through the communication section 79, or installed from the storage section 78, or installed from the ROM 72. When the computer program is executed by the CPU 71, the method of the embodiment of the present disclosure is executed.

[0218] It should be noted that, in the context of the present disclosure, a computer-readable medium can be a tangible medium that can contain or store a program for use by or in connection with an instruction execution system, apparatus, or device.

[0219] The computer-readable medium can be a computer-readable storage medium, a computer-readable signal medium, or any combination of the two.

[0220] The computer-readable storage medium includes, but is not limited to: an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination of the above. More specific examples of the computer-readable storage medium can include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present disclosure, the computer-readable storage medium can be any tangible medium that contains or stores a program that can be used by or in connection with an instruction execution system, apparatus, or device. A computer instruction is stored on the computer-readable storage medium, and when the instruction is executed by a processor, the method described in any of the foregoing embodiments is implemented.

[0221] A computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries computer-readable program code. Such a propagated data signal may take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the foregoing. The computer-readable signal medium may also be any computer-readable medium other than a computer-readable storage medium, and the computer-readable signal medium may send, propagate, or transmit a program 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 appropriate medium, including but not limited to wires, optical cables, RF (radio frequency), etc., or any suitable combination of the foregoing.

[0222] The above computer-readable medium may be included in the above electronic device; or may exist separately without being assembled into the electronic device.

[0223] In some embodiments, a computer program is also provided, including: instructions that, when executed by a processor, cause the processor to execute the method described in any of the foregoing embodiments. For example, the instructions may be embodied as computer program code.

[0224] In the embodiments of the present disclosure, computer program code for performing the operations of the present disclosure may be written in one or more programming languages or combinations thereof. The above programming languages include but are not limited to object-oriented programming languages such as Java, Smalltalk, C++, and also include conventional procedural programming languages such as the "C" language or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, executed as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., by using an Internet service provider to connect through the Internet).

[0225] 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 the present disclosure. In this regard, each block in the flowchart or block diagram may represent a module, a segment of a program, or a portion of code that contains one or more executable instructions for implementing a specified logical function. It should also be noted that, in some alternative implementations, the functions noted in the blocks may occur in a different order than noted in the accompanying drawings. For example, two consecutive blocks shown may actually be executed substantially in parallel, or they may sometimes be executed in the 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 by a dedicated hardware-based system that performs the specified functions or operations, or by a combination of dedicated hardware and computer instructions.

[0226] The functions described above can be performed, at least in part, by one or more hardware logic components. By way of example, and without limitation, exemplary hardware logic components that may be used include: field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), systems on a chip (SOCs), complex programmable logic devices (CPLDs), and the like.

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

Claims

1. A control method for interactive live broadcast, comprising: Determining a current state in response to the occurrence of a current event in an interactive live broadcast participated by multiple hosts, wherein the interactive live broadcast corresponds to multiple states; Determining a next state based on the current event and the current state through a state object corresponding to the current state, wherein different state objects are used to execute workflows in different states of the interactive live broadcast; Updating the current state to the next state; Executing a workflow corresponding to the updated current state through a state object corresponding to the updated current state.

2. The control method according to claim 1, wherein, The determining the next state based on the current event and the current state through a state object corresponding to the current state includes: Determining, through a state object corresponding to the current state, whether the current event is a valid event corresponding to the current state; In response to the current event being a valid event, determining the next state based on the current event and the current state; In response to the current event being an invalid event, discarding the current event.

3. The control method according to claim 1, wherein, The executing a workflow corresponding to the updated current state through a state object corresponding to the updated current state includes: Determining 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, creating a state object corresponding to the updated current state through a registry.

4. The control method according to claim 3, wherein, The executing a workflow corresponding to the updated current state through a state object corresponding to the updated current state further includes: In response to the current state and the updated current state corresponding to the same state object, sending a state update notification to the state object corresponding to the current state; Executing a workflow corresponding to the updated current state through a state object corresponding to the current state.

5. The control method according to claim 1, further comprising: In response to determining the next state, configuring the state object corresponding to the current state to be in an inactive state, wherein the executing a workflow corresponding to the updated current state through a state object corresponding to the updated current state includes: Configuring the state object corresponding to the updated current state to be in an active state, and executing a workflow corresponding to the updated current state through the active state object corresponding to the updated current state.

6. The control method according to claim 1, wherein, The interactive live broadcast includes multiple interactive tasks, each interactive task in the multiple interactive tasks 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 determining a current state in response to the occurrence of a current event in the interactive live broadcast includes: In response to the occurrence of the current event in the interactive live broadcast, determining the interactive task corresponding to the current event; Determining the current state of the interactive task through the engine corresponding to the interactive task.

8. The control method according to claim 7, wherein, Determining the next state through the state object corresponding to the current state according to the current event and the current state includes: Calling, through the engine corresponding to the interaction task, the state instance corresponding to the current state of the interaction task, and determining the next state of the interaction task according to the current event and the current state of the interaction task; Executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state includes: Calling, through the engine corresponding to the interaction task, the state instance corresponding to the updated current state of the interaction task, and executing the workflow corresponding to the updated current state.

9. The control method according to claim 6, wherein, The multiple interaction tasks include a first interaction task and a second interaction task. The first interaction task corresponds to a first engine, and the second interaction task corresponds to a second engine. The second engine is created in response to the first interaction 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 an operation event in which a first host among the multiple hosts triggers an initiation control of the interactive live broadcast. The current state is the initial state, and the next state is the preparation state. Executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state includes: Executing the workflow of displaying an invitation interface through the state object corresponding to the preparation state, where the invitation interface includes an invitation control for inviting other hosts except the first host to join the interactive live broadcast.

11. The control method according to any one of claims 1-9, wherein, The current event is an operation event in which the first host among the multiple hosts invites the second host to join the interactive live broadcast. The current state is the preparation state, and the next state is the invitation state. Determining the next state through the state object corresponding to the current state according to the current event and the current state includes: Through the state object corresponding to the preparation state, according to the operation event in which the first host invites the second host to join the interactive live broadcast, calling the invitation interface of the server to send an invitation message, where the invitation message includes an identifier of the second host; In response to the successful invocation of the invitation interface, through the state object corresponding to the preparation state, determining that the next state is the invitation state according to the preparation state; Executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state includes: Executing the workflow of closing the invitation interface through the state object corresponding to the invitation state.

12. The control method according to any one of claims 1-9, wherein, The current event is an event in which the first host among the multiple hosts receives an invitation message sent by the second host. The current state is the initial state, and the next state is the reception state. Executing the workflow corresponding to the updated current state through the state object corresponding to the updated current state includes: Executing the workflow of displaying an invitation message interface through the state object corresponding to the reception state, where the invitation message interface includes an acceptance control for accepting the invitation of the second host to join the interactive live broadcast.

13. The control method according to any one of claims 1-9, wherein, The current event is an operation event in which the first host among the multiple hosts accepts the invitation of the second host to join the interactive live broadcast. The current state is the receiving state, and the next state is the accepting state. Executing the workflow corresponding to the updated current state through the state object corresponding to the current state includes: Executing, through the state object corresponding to the accepting state, the workflow of invoking the acceptance interface of the server to send an acceptance invitation message.

14. The control method according to any one of claims 1-9, wherein, The current event is an event that the interactive task in the interactive live broadcast starts. The current state is the invitation state or the accepting state, and the next state is the connection state. Executing the workflow corresponding to the updated current state through the state object corresponding to the current state includes: Executing, through the state object corresponding to the connection state, the workflow of starting the countdown of the interactive task and displaying the information of the countdown of the interactive task.

15. The control method according to any one of claims 1-9, wherein, The current event is an 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. Executing the workflow corresponding to the updated current state through the state object corresponding to the current state includes: Sending a score determination request to the server through the state object corresponding to the score determination state, where the score determination request is used to request to determine the score of each host according to the data of the multiple hosts participating in the interactive task.

16. The control method according to any one of claims 1-9, wherein, The current event is an event that the score determination of the interactive task in the interactive live broadcast is completed. The current state is the score determination state, and the next state is the additional task state. Executing the workflow corresponding to the updated current state through the state object corresponding to the current state includes: Executing, through the state object corresponding to the additional task state, the workflow of starting the countdown of the additional task and displaying the information of the countdown of the additional task.

17. The control method according to any one of claims 1-9, wherein, The current event is an 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. Executing the workflow corresponding to the updated current state through the state object corresponding to the current state includes: Executing, through the state object corresponding to the end state, the workflow of cleaning up the resources occupied by the interactive task and ending the interactive task.

18. A control device for an interactive live broadcast, comprising: A first determination module configured to determine a current state in response to the occurrence of a current event in an interactive live broadcast participated by multiple hosts, where the interactive live broadcast corresponds to multiple states; A second determination module configured to determine a next state according to the current event and the current state through the state object corresponding to the current state, where different state objects are used to execute the workflows in different states of the interactive live broadcast; An update module configured to update the current state to the next state; An execution module configured to execute the workflow corresponding to the updated current state through the state object corresponding to the updated current state.

19. An electronic device, comprising: a processor; and a memory coupled to the processor and configured to store instructions, which when executed by the processor, cause the processor to execute the control method of the interactive live broadcast according to any one of claims 1 to 17.

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