玩瞳文档中心


封装音频播放器

<p>音频播放是绘本APP的基本功能。由于具体的实现方式在各平台上会有差异,因此需要开发人员根据具体的平台实现声音播放的功能。有些平台底层的实现采用的是C语言,需要将它封装成C++的class。</p> <h3>一、封装原则</h3> <p>底层音频功能的封装不需要过于严格的接口标准,但一些基本的原则必须遵守。</p> <ol> <li>具有状态的概念 至少需要Idle和Playing状态</li> <li>支持多实例、多线程运行 这是为了支持多轨播放功能</li> <li>有初始化、重置的操作 重置(reset)操作要保证在任何状态下调用都可以正确恢复到Idle状态</li> <li>有播放、停止操作 多个实例可同时调用播放功能,以实现多轨播放</li> <li>音频播放完成时要调用回调函数 回调函数是由上层结构注册的,这是为了实现信息自底向上地传递</li> <li>之后在实现<em><a href="https://www.showdoc.cc/223276982497880?page_id=1274208846155040">音频播放器</a>接口</em>时要保证那些接口都能够利用封装好的class完成</li> </ol> <h3>二、调用流程</h3> <p><img src="https://www.showdoc.cc/server/api/common/visitfile/sign/3e47f3e9409df734ee2b4a892a98265b?showdoc=.jpg" alt="调用流程" title="调用流程" /></p> <p>必须在任何地方都可调用重置功能。</p> <h3>测试例程</h3> <ul> <li>单轨 <ul> <li>单个实例</li> <li>连续播放多个音频</li> <li>音频可以被打断</li> <li>音频播放完成后会调用回调函数</li> </ul></li> <li>多轨 <ul> <li>多个实例,多个线程</li> <li>同时播放多个音频</li> <li>不同实例可独立进行操作,互不干扰</li> <li>音频可以被打断</li> <li>每个实例在播放完成后都会调用回调函数</li> </ul></li> </ul> <p><strong>要保证所有接口能正常调用并且功能正常</strong></p>

页面列表

ITEM_HTML