程序手艺人 - 有趣有能量

欢迎关注我的订阅号“程序手艺人”

AVS之AudioPlayer概述(一)

原文地址
译者:远方的自由
转载请注明出处: http://blog.csdn.net/z2066411585

Alexa语音服务(AVS)由对应于基本客户端(或产品)功能的接口组成,如音频播放,音量控制,或TTS.这些接口与内置的Alexa功能以及使用Alexa Skills Kit (ASK)开发的第三方技能有一对多的关系. 例如,Amazon Music, Flash Briefing, Audible, TuneIn 和通过ASK技能的音频流传输都依赖于AudioPlayer接口管理,控制和报告流媒体音频内容.

AVS发送指令到客户端,指示它采取行动(例如,播放一个流),并期望在执行这些操作时以特定的顺序返回事件.你必须正确实现AudioPlayer接口,以确保所有用AudioPlayer的流媒体服务按照设计工作,并且准备好产品以通过媒体认证. 该页面提供了概念性信息,定义和顺序图,以帮助你开发,集成,测试和排除故障.

简单示例

让我们以一个简单的示例来说明客户端和AVS之间的预期交互.想象你正在厨房烹饪意大利面晚餐 - 手里满满的,水沸腾着-而不是拿你手机播放一些音乐,你说:“Alexa, play some music.”这里发生了什么.

一个Recognize事件包括二进制音频附件(捕获的语音)被发送到AVS.被捕获的音频将由Alexa处理并转换为一系列指令(以及潜在的相应音频附件),然后发送到你的客户端,指示其执行操作.

在这种情况下,你的客户端接收到两个指令.

  • 第一, Speak指令指示你的客户端播放Alexa语音,例如, “Shuffling your music”.
  • 第二,Play指令指示你的客户端开始播放音乐

在执行Play指令之前,AVS希望你的客户端处理Speak指令并发送一些列事件给AVS.在这种情况下,当你的客户端开始播放Alexa语音时,将发送一个SpeechStarted事件,并且当Alexa语音播放完成时,发送SpeechFinished事件.此时,客户端开始Play指令中包含的音频流.

当播放开始时,你的客户端发送一些列生命周期事件给AVS:

  • 当播放开始时,发送PlaybackStarted.发送给AVS的offsetInMilliseconds应该匹配Play指令中提供的偏移量.
  • 当你的客户端准备好缓冲/下载播放队列中的下一个音频流时,发送PlaybackNearlyFinished.许多实现,在PlaybackStarted不久后就发送这个事件来开始缓冲并减少流之间的播放延迟.
  • 如果Play指令中存在progressReportDelayInMilliseconds,ProgressReportDelayElapsed发送到AVS.
  • 如果Play指令中存在progressReportIntervalInMilliseconds,ProgressReportIntervalElapsed发送到AVS.

  • 当客户端完成播放流时,发送PlaybackFinished

  • 当客户端接收到Stop指令并停止播放,则会发送PlaybackStopped

这些事件通知Alexa已经开始播放,请求下一个流并向AVS和音乐服务提供商提供进度报告信息.
在下面的章节中,我们将介绍这些事件以及何时必须发送这些事件.

阅读更多

扫码向博主提问

去开通我的Chat快问

z2066411585

博客专家

非学,无以致疑;非问,无以广识
  • 擅长领域:
  • 嵌入式
  • Linux
  • Wifi 
  • 音视频
  • 驱动
个人分类: [ 好文翻译 ]
想对作者说点什么? 我来说一句

简易AVS脚本编写工具

2015年08月30日 1.7MB 下载

没有更多推荐了,返回首页

不良信息举报

AVS之AudioPlayer概述(一)

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭