下图为 APlayer 状态转换图,其中黄色状态为稳定状态,白色状态为短暂即时状态,棕色箭头为方法调用,
例如:
1、APlayer 初始处于 PS_READY(就绪状态),用户调用 Open,则状态立刻变成 PS_OPENING (正在打开),
直到整个打开过程完成,则状态就变成了PS_PAUSED(暂停);
2、如果设置了自动播放配置(编号8,默认设置1)或者用户调用了 Play,则状态变成 PS_PLAY(播放),
播放过程中调用 Pause,则变回 PS_PAUSED 状态;
3、如果用户想停止播放调用 Close,这时会立即变成 PS_CLOSING(正在关闭),直到关闭过程完成,状态变成 PS_READY,
其实在任何时候只要调用 Close,最终都会进入PS_READY状态(图中为了精简未给出所有路径);
4、影片播放完成,也会自动进入 PS_READY 状态,如果想进一步查看播放完成原因,可以调用 GetConfig(7) 获取播放结束原因:
GetConfig(7)的返回值有以下:0-播放完成, 1-主动关闭, 其他值 0x8xxxxxxx,为错误代码。
另外为了状态的简练, APlayer 和部分播放器不一样,不提供停止状态。