tablet os 和BB10中用于处理多媒体的组件


tablet os 和BB10中用于处理多媒体的组件是mm-renderer
它提供了以下这些功能
播放一系列多媒体文件
处理播放的命令
获得当前播放的状态
当播放的状态发生变化会触发通知机制
提供动态元数据
包含的头文件是bps/mmrenderer.h
支持的文件
M3U 文件 file://xx.mp3
SQL queries  sql:database?query=querystring 

mm-renderer包含的抽象层

messaging layer 解压client发出的信息和投递他们给contexts
context是负责在一段时间里播放媒体数据到输出设备上,context
有一个唯一的名字,他有一个输入端和几个与他有关系的输出端
输入端包含audio和video,和一些输出设备(speaker和screen)

context management layer
保持输出端与context的连接
映射输出的机制
选择合适的机制到对应的context上
保存context state的坚持和连接

发送client的request给插件机制
plugin management layer
保持对各种plugin的跟踪

contexts
上下文环境,是播放媒体数据流的,如果你的输入是一个audio,输出是file,context会去记录这些
操作,如果你要设置音量,也需要context去操作,

output
输出设备
file,
audio device
video device
输出设备在开始输入操作之前要先连接设备

input
要被播放的数据源, 当一个input被连接后,context management layer
会去选择合适的机制,把他连接到context上,然后就可以操作别的了

enginee plugin
引擎插件,multimedia render 使用引擎去播放各种input

怎么使用multimedia renderer
连接 mmr_connect()
断开俩就 mmr_disconnect()
mmr_context_create()创建context,传递的参数是mm-renderer connect handle
这个函数会返回一个handle,以后你就用这个handle去操作attaching, playback 
command等,你可以创建很多个context,但前提是你要自己管理他们之间可能存在的
冲突
mmr_context_destroy() 释放context

Closing context handles
context handle并不是一个,
有时候primary handle被关闭了,
还有其他的context handle在
这种成为孤立的handle
要关闭context有以下2中方式
如果孤立的context 存在  mmr_context_close()

设置属性需要用到字典对象,就是有key-value组成
strm_dict_new() 去创建字典,
strm_dict_set() 去设置字典
mmr_input_parameters() input 属性
mmr_output_parameters()  output属性
mmr_context_parameters() context 属性

播放media的流程
1. 连接mm-renderer mmr_connect()
2. 创建context mmr_context_create()和mmr_context_parameters()
3. 连接output 和设置属性, mmr_output_attach()和mmr_output_parameter()
4. 连接input 和设置属性, mmr_input_attach()和mmr_input_parameter()
5. 播放 mmr_play()

播放的状体

idle 空闲
no input is attached 没有输入
stopped 停止
input is attached by is not playing 有输入但还未开始播放
playing 播放
input is attached and is playing  开始播放

暂停这种状态要设置播放速度为0

设置播放速度
范围为0-1000 mmr_speed_set()

设置播放位置
mmr_seek() 99:9999 第一个参数播放列表的位置, 第二个参数当前文件播放位置,毫秒
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值