MSDC 4.3 接口规范(9)
4.4.5 其他需要注意的事项
4.4.5.1 流服务已暂停
4.4.5.1.1接口功能
4.4.5.1.2 前置条件
- 流模块连接初始化
- 服务已经启动
4.4.5.1.3 描述
如果已处于STARTED状态的服务暂时不可用,则会将其移至STALLED状态。在这种情况下,MSDC API使用streamingServiceStalled()通知应用程序。
如果MSDC可以恢复服务,MSDC API将发送streamingServiceStarted(),以指示服务已移回STARTED状态。
通常,如果由于无线控制信道不可用或不利的覆盖条件而无法接收服务内容,则服务将进入STALLED状态。
有关代码示例,请参见第A.3.2节。
4.4.5.1.4 调用流程
4.4.5.2 MPD升级
4.4.5.2.1 接口方法
4.4.5.2.2 前置条件
流模块初始化
4.4.5.2.3 描述
如果有更新的MPD文件可用于特定服务,则MSDC API会使用mpdUpdated()通知应用程序。然后,应用程序可以使用getPlaybackUrl()获取更新的MPD URL(请参阅第4.4.8.1节)。
注意:mpdUpdated()仅在循环中传输内容时发送。演示和测试通常都是这样。如果MSDC中有Service Announcement文件更新或MPD带内更新,则应用程序不会收到此通知。
有关代码示例,请参见第A.3.2节。
4.4.5.2.4 调用流程
4.4.5.3 服务列表升级
4.4.5.3.1 接口方法
4.4.5.3.2前置条件
流模块初始化
4.4.5.3.3 描述
如果可用流式处理服务列表发生更改,MSDC API会使用streamingServiceListUpdate()通知应用程序。这可能意味着以下一种或两种情况:
-
可能会在可用流媒体服务列表中添加或删除服务
-
可用流媒体服务列表中某些服务的可用模式可能发生变化
要获取更新的服务列表,应用程序必须调用MSDC API的getStreamingServiceList()(请参阅第4.4.8.2节)。
注意:如果露营组或服务组发生任何更改,MSDC API会向应用程序发送streamingServiceListUpdate()。有关露营和服务团体的更多信息,请参见第4.4.8.5节。
流服务列表具有serviceAvailability标志,该标志可以采用以下值:
- 0 (STREAMING_SERVICE_AVAILABLE) – Service is available in broadcast mode.
- 1 (STREAMING_SERVICE_NOT_AVAILABLE_IN_BC) – Service is available in unicast mode.
- 2 (STREAMING_SERVICE_NOT_AVAILABLE) – Service is unavailable.
从MSDC接收到streamingServiceListUpdate()指示后,应用程序必须使用getStreamingServiceList()来获取更新的可用流服务列表。您可以暂停或恢复活动的流媒体服务,具体取决于serviceAvailability标志的值。
对于活动流服务,如果serviceAvailability标志从Streaming_service_AVAILABLE更改为STREAMINT_service_NOT_AVAILABLE_IN_BC,则MSDC
中间件将触发服务连续性功能,向DASH播放器发出切换到单播模式的信号。然后,服务将以单播模式继续。
注意:首次启动服务时,媒体播放器应在收到服务已启动的通知后才开始播放。
4.4.5.3.4 调用流程
4.4.6 其他错误提示
4.4.6.1 接口方法
4.4.6.2 前置条件
添加流模块时间监听器
4.4.6.3 描述
如果MSDC API想要通知应用程序任何流服务错误,它将使用streamingServiceError()。有关不同类型错误通知的详细信息,请参阅第9.4条。
有关代码示例,请参见第A.3.2节。
4.4.6.4 调用流
如果应用程序尝试使用无效的服务ID请求流服务操作(启动、停止或切换服务),MSDC API将使用streamingServiceError()和错误代码error_S_invalid_service_ID响应应用程序
如果流服务不可用,MSDC API将使用streamingServiceError()和错误代码error_S_service_UNAVAILABLE以及受影响服务的服务ID来响应应用程序。
但是,如果所有流媒体服务都不可用,则服务ID将为NULL。
错误代码error_S_SERVICE_RESET告诉应用程序服务相关信息(如服务ID)已重置,应用程序应使用getStreamingServiceList()获取新的服务信息(请参阅第4.4.8.2节)。
当尝试启动服务(例如S1)时,应用程序可能会收到错误通知,错误代码为error_S_FREQUENCY_CONFLICT。这意味着另一个应用程序已经在使用流媒体服务(例如S2),该服务与包含S1的服务组不同(参见第4.4.8.5节)。在这种情况下,MSDC无法启动服务。