WEB开发网
开发学院手机开发Android 开发 Android 多媒体框架 OpenCore(PacketVideo):Pl... 阅读

Android 多媒体框架 OpenCore(PacketVideo):Player和Auther

 2010-03-03 16:51:00 来源:WEB开发网   
核心提示:PVCommandId AddDataSource(PVPlayerDataSource& aDataSource, const OsclAny* aContextData = NULL);PVCommandId Init(const OsclAny* aContextData = NULL);PVCommandId

PVCommandId AddDataSource(PVPlayerDataSource& aDataSource, const OsclAny* aContextData = NULL);

PVCommandId Init(const OsclAny* aContextData = NULL);

PVCommandId AddDataSink(PVPlayerDataSink& aDataSink, const OsclAny* aContextData = NULL);

PVCommandId Prepare(const OsclAny* aContextData = NULL);

PVCommandId Start(const OsclAny* aContextData = NULL);

PVCommandId Pause(const OsclAny* aContextData = NULL);

PVCommandId Resume(const OsclAny* aContextData = NULL);

PVCommandId Stop(const OsclAny* aContextData = NULL);

PVCommandId RemoveDataSink(PVPlayerDataSink& aDataSink, const OsclAny* aContextData = NULL);

PVCommandId Reset(const OsclAny* aContextData = NULL);

PVCommandId RemoveDataSource(PVPlayerDataSource& aDataSource, const OsclAny* aContextData = NULL);

这里面的DataSink可能包含Video的输出和Audio的输出两者部分。在pv_player_types.h文件中,定义了Player的状态机,以PVP_STATE_为开头,如下所示:

typedef enum

{

PVP_STATE_IDLE = 1,

PVP_STATE_INITIALIZED = 2,

PVP_STATE_PREPARED = 3,

PVP_STATE_STARTED = 4,

PVP_STATE_PAUSED = 5,

PVP_STATE_ERROR = 6

} PVPlayerState;

PVPlayerInterface 中的各个操作如果成功,可以更改Player的状态机:初始化的时候Player是PVP_STATE_IDLE状态,调用Init后,进入 PVP_STATE_INITIALIZED状态;调用AddDataSink,进入PVP_STATE_PREPARED状态;调用Prepare后,进入PVP_STATE_PREPARED状态;调用start后进入PVP_STATE_STARTED状态,之后可以调用pause进入 PVP_STATE_PAUSED状态。

PVP_STATE_STARTED和PVP_STATE_PAUSED状态是播放情况下的状态,可以使用start和pause函数在这两个状态中切换。在播放过程中,调用stop可以返回PVP_STATE_INITIALIZED状态,在调用 RemoveDataSource返回PVP_STATE_IDLE状态。

5.3 Android Player部分

这个Android的Player的“适配器”需要调用OpenCore的 Player

Tags:Android 多媒体 框架

编辑录入:coldstar [复制链接] [打 印]
赞助商链接