以下部分定义了一组调用来管理流服务的启动/停止顺序。
图 4-18 显示了应用程序可见的流服务状态。 根据 MSDC 采取的操作,服务可能会从一种状态移动到另一种状态。

注意:图 4-18 中没有显示两个临时中间状态:
void startStreamingService (int serviceId);
void streamingServiceStarted (int serviceId);
void streamingServiceError (int errorCode, String message, int serviceId)
流媒体模块连接初始化
要启动流服务,应用程序应使用 startStreamingService()。 通过这个调用,应用程序给出了要启动的服务的服务 ID。
如果启动 Streaming 服务成功,MSDC API 会以 streamingServiceStarted() 响应,以指示服务已移至 STARTED 状态。
如果应用想要启动流媒体服务,它必须使用 startStreamingService() 发送请求。
该函数提供需要启动的 Streaming 服务的服务 ID。 应用程序可以从 getStreamingServiceList() 获取服务 ID(参见第 4.4.8.2 节)。
服务成功启动后,MSDC API 将 streamingServiceStarted() 发送到应用程序并将服务移动到 STARTED 状态。

如果应用程序尝试启动已处于 STARTED 状态的服务,MSDC API 会以 streamingServiceError() 和错误代码 ERROR_S_UNABLE_TO_INITIALIZE 进行响应(参见图 4-16)。
如果已在运行允许的最大并发服务数,则 MSDC API 使用 streamingServiceError() 和错误代码 ERROR_S_CONCURRENT_SERVICE_LIMIT_REACHED 响应应用程序。

如果 MSDC 由于某种原因无法启动流服务,MSDC API 会使用 streamingServiceError() 和错误代码 ERROR_S_UNABLE_TO_START_SERVICE 响应应用程序。
