MSDC 4.3 接口规范(7)

281 篇文章 26 订阅
14 篇文章 1 订阅

4.4 流媒体服务管理

以下部分定义了一组调用来管理流服务的启动/停止顺序。

4.4.1 服务状态

图 4-18 显示了应用程序可见的流服务状态。 根据 MSDC 采取的操作,服务可能会从一种状态移动到另一种状态。
在这里插入图片描述

  • STOPPED– 服务的默认状态。 该服务可供用户使用,但尚未启动。
    – 如果用户停止已经启动或停止的服务,它会进入停止状态。 发生这种情况时,应用程序会收到 streamingServiceStopped() 通知(请参阅第 4.4.3 节)。
  • STARTED– 当设备上提供流数据(如果网络上可用)时,服务将移至已启动。 当 Streaming 服务状态变为 STARTED 时,应用程序会收到 streamingServiceStarted() 通知(参见第 4.4.2 节)。
  • STALLED – 如果处于 STARTED 状态的服务存在导致流数据对 DASH 客户端不可用的临时问题,则 MSDC 将服务移至 STALLED。 当流服务状态变为 STALLED 时,streamingServiceStalled() 会通知应用程序(参见第 4.4.5.1 节)。
    – STALLED 预计是一个临时状态。 一旦 MSDC 可以从网络获取流数据,它就会将其移至 STARTED。 或者,应用程序可以选择使用 streamingServiceStopped() 将服务移动到 STOPPED(参见第 4.4.3 节)。

注意:图 4-18 中没有显示两个临时中间状态:

  • START_REQUESTED — 当应用程序请求启动服务但尚未收到 streamingServiceStarted() 通知时(参见第 4.4.2 和 4.4.4 节)。
  • STOP_REQUESTED – 当应用程序请求停止服务但尚未收到 streamingServiceStopped() 通知时(参见第 4.4.3 和 4.4.4 节)

4.4.2 启动流媒体服务

4.4.2.1 接口函数

void startStreamingService (int serviceId);
void streamingServiceStarted (int serviceId);
void streamingServiceError (int errorCode, String message, int serviceId)

4.4.2.2 先决条件

流媒体模块连接初始化

4.4.2.3 描述

要启动流服务,应用程序应使用 startStreamingService()。 通过这个调用,应用程序给出了要启动的服务的服务 ID。
如果启动 Streaming 服务成功,MSDC API 会以 streamingServiceStarted() 响应,以指示服务已移至 STARTED 状态。

4.4.2.4 调用流程
4.4.2.4.1 启动流媒体服务

如果应用想要启动流媒体服务,它必须使用 startStreamingService() 发送请求。

该函数提供需要启动的 Streaming 服务的服务 ID。 应用程序可以从 getStreamingServiceList() 获取服务 ID(参见第 4.4.8.2 节)。

服务成功启动后,MSDC API 将 streamingServiceStarted() 发送到应用程序并将服务移动到 STARTED 状态。
在这里插入图片描述

4.4.2.4.2 服务已经处于STARTED状态

如果应用程序尝试启动已处于 STARTED 状态的服务,MSDC API 会以 streamingServiceError() 和错误代码 ERROR_S_UNABLE_TO_INITIALIZE 进行响应(参见图 4-16)。

4.4.2.4.3 达到并发服务限制

如果已在运行允许的最大并发服务数,则 MSDC API 使用 streamingServiceError() 和错误代码 ERROR_S_CONCURRENT_SERVICE_LIMIT_REACHED 响应应用程序。

在这里插入图片描述

4.4.2.4.4 无法启动流媒体服务

如果 MSDC 由于某种原因无法启动流服务,MSDC API 会使用 streamingServiceError() 和错误代码 ERROR_S_UNABLE_TO_START_SERVICE 响应应用程序。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,msdc_debug log是指在访问SD卡的过程中记录的日志。在这个日志中,有大量的MSDC_INT_DATCRCERR错误发生。这种错误通常与手机硬件的走线有关。建议检查SD卡的走线是否正常。此外,还可以尝试修改data line的驱动电流来解决问题。具体的修改方法可以在/kernel-3.10/drivers/misc/mediatek/mach/${Project_name}/project_name/core/board.c文件中找到msdc1_hw结构体,并将其中的.dat_drv值加1。\[1\] 另外,还提到了一个关于isClassServerError()方法的引用,该方法用于判断事件是否表示远程本地守护程序错误。根据代码,如果mCode的值大于等于400且小于500,则表示是一个服务器错误。\[2\] 最后,还提供了一个mount volume fail的引用,其中包含了一条关于mount volume失败的日志。这条日志显示了一个NativeDaemonConnector$NativeDaemonFailureException异常,命令'6 volume mount public:179,129 2 0'执行失败,返回码为400。\[3\] 综上所述,msdc_debug log是用于记录SD卡访问过程中的日志,其中包含了大量的MSDC_INT_DATCRCERR错误。建议检查SD卡的走线,并尝试修改data line的驱动电流来解决问题。此外,还提到了一个关于判断服务器错误的方法和一个关于mount volume失败的日志。 #### 引用[.reference_title] - *1* *2* *3* [关于sdcard异常问题分析](https://blog.csdn.net/qq_37610155/article/details/79884827)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值