玩瞳文档中心


音频播放器

<h3>概述</h3> <p>该文档是<strong>音频播放器</strong>接口文档,主要用于<strong>控制音频的暂停、播放、停止等操作</strong>,开发者需要继承虚类VTMediaPlayerAbs并实现其方法。 音频播放器控制着绘本APP的声音播放。但具体的实现方式在各平台上会有差异,因此需要开发人员根据具体的平台实现这些虚函数。方法是自定义一个播放器类,继承这个接口类,之后为每个函数定义具体的实现方式。</p> <h3>注意:</h3> <p><strong><em>我们的通知回调不能处理太多业务,否则会造成识别线程阻塞</em></strong></p> <hr /> <h4>1. 类声明</h4> <p>音频播放器接口类的声名如下: ``` c++ typedef int vt_status_t; class VTMediaPlayerAbs { public: VTMediaPlayerAbs() {printf(&quot;Create VTMediaPlayerAbs.\n&quot;);} virtual ~VTMediaPlayerAbs() {printf(&quot;Destroy VTMediaPlayerAbs.\n&quot;);} virtual vt_status_t init(const std::string &amp;url);//初始化播放URL virtual vt_status_t play();//播放 virtual vt_status_t reset();//暂停 virtual vt_status_t stop();//停止 virtual vt_status_t pause();//暂停 virtual vt_status_t resume();//恢复播放 virtual vt_status_t release();//释放内存,一般不需要 virtual bool isPlaying();//是否正在播放 virtual vt_status_t setLooping(bool looping);//设置循环播放 virtual bool isLooping();//是否正在循环播放 virtual vt_status_t enableEncrypt(bool enable);//设置加密播放,如果是加密资源,SDK会调用此接口传入TRUE支持播放加密MP3,如果是非加密调用传入FALSE virtual void setOnCompletionCallBack(VTCompletionCallBack <em>pCallBack);//设置播放完成回调 virtual void setOnErrorCallBack(VTPlayerErrorCallBack </em>pCallBack);//设置出错回调 virtual void setOnStateCallBack(VTPlayerStateCallBack *pCallBack); //设置播放状态回调 };</p> <pre><code>#### 2. 接口说明 该接口实例会被绘本sdk内部调用,用于将下载解压状态通知给sdk外部的应用。 **接口原型:**</code></pre> <p>void onUpdateState(int status, int params);</p> <pre><code>**参数:** | 参数 | 类型 | 说明 | | ------------ | ------------ | ---- | | status | int | 状态值 | | params | int | 进度值 范围:0~100,只有status=DOWNLOAD_STATUS_PROGRESS时有效 | **返回值:** 无 | 返回值 | 类型 | 说明 | | ------------ | ------------ | ----- | | - | - | - | 音频播放器控制着绘本APP的声音播放。但具体的实现方式在各平台上会有差异,因此需要开发人员根据具体的平台实现这些虚函数。方法是自定义一个播放器类,继承这个接口类,之后为每个函数定义具体的实现方式。 ### 接口方法介绍 #### 构造函数与析构函数 自定义的播放器类继承接口类后,在构造和析构时会自动调用接口类的构造函数和析构函数,只要注意内存的申请和释放即可。 #### init **简要描述:** 初始化播放器到初始状态,并且设置待播放的文件路径。 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |url|是|const string&amp;|音频文件路径| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|初始化成功:0;失败:-1| #### play **简要描述:** 播放音频文件(该文件已经在init()中被设置) **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|播放成功:0;失败:-1| #### reset **简要描述:** 重置播放器,不论播放器在什么状态,都可以将它恢复到空闲状态 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|重置成功:0;失败:-1| #### stop **简要描述:** 停止播放。如果播放器处于播放状态,则打断当前播放的音频;如果播放器已经处于停止状态,则什么都不做。 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|停止成功:0;失败:-1| **说明:** 有些平台底层音频接口的stop方法会将播放器销毁,因此在不确定的情况下推荐使用reset()来实现stop()函数 #### pause **简要描述:** 暂停播放。当播放器正在播放时暂停当前的文件,否则就什么都不做 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|暂停成功:0;失败:-1| #### resume **简要描述:** 恢复已暂停的文件播放。当播放器处于暂停状态时有效,否则就什么都不做 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|恢复成功:0;失败:-1| #### release **简要描述:** 释放播放器,清理播放器所占用的资源。 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|释放成功:0;失败:-1| #### isPlaying **简要描述:** 返回播放器是否正在播放 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |bool|正在播放:true;其他:false| #### setLooping **简要描述:** 设置播放器是否循环播放 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |looping|是|bool|true表示循环播放,false表示单次播放| **返回值:** |类型|说明| |:-----|-----| |vt_status_t|设置成功:0;失败:-1| #### isLooping **简要描述:** 返回播放器的循环方式 **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |-|-|-|-| **返回值:** |类型|说明| |:-----|-----| |bool|循环播放:true;单次播放:false| #### setOnCompletionCallBack **简要描述:** 设置播放器的回调类,当音频播放完成时会调用该类的方法,通知上层“播放完毕” **参数:** |参数名|必选|类型|说明| |:----|:---|:-----|-----| |pCallback|是|VTCompletionCallBack\*|回调类指针| **返回值:** |类型|说明| |:-----|-----| |void|-| **说明:** 回调类VTCompletionCallBack的定义如下: ```c++ class VTCompletionCallBack { public: VTCompletionCallBack() {printf("Create VTCompletionCallBack.\n");} virtual ~VTCompletionCallBack() {printf("Destroy VTCompletionCallBack.\n");} virtual void OnCompletion(VTMediaPlayerAbs *pBMP) {} };</code></pre> <p>该类也是一个虚类,要用户自行实现其中的方法。 另外,在语音播放器类中要声名一个类型为 <em>VTCompletionCallBack*</em> 的变量,用于接收参数的赋值。</p> <h3>注意:我们的通知回调不能处理太多业务,否则会造成识别线程阻塞</h3>

页面列表

ITEM_HTML