新闻中心

EEPW首页>嵌入式系统>牛人业话> 创客作品:自制足球游戏解说员

创客作品:自制足球游戏解说员

作者:EEPW编译 时间:2015-01-13 来源:电子产品世界 收藏

  上述使用了两个“声音”对象。一个用于存储文件中来自外部文件的数据;另一个用于播放实际声音。详细解释工作原理的注释不多,不过还是有必要了解几个核心概念:

本文引用地址://m.amcfsurvey.com/article/268066.htm

  在音频播放前(送到声卡)我们借助eventlistener用wavdata填充“外向的”声音对象,即发送到声卡前询问的数据,这些数据决定显示哪个口型。

  如果希望播放声音,我们只需告诉设备,从哪个位置开始提取已加载声音数据的wavdata字节即可。当到达示例音频的最后部分,我们就停止音频播放。

  最棘手的部分是将中的标签数据转换成“示例数据抵消”值以及使音频在恰当的位置启动/停止。中的标签位置由运行时间决定。但“样本”数据不基于时间,这就使其与匹配出现问题。

  对于每个示例,都占用4个字节,据此可以计算出,一秒的音频数据,若以CD品质44.1 khz记录则应该包含44100 * 8 = 352800个字节。所以如果我们开始从文件中提取样本数据并加载352800字节,就可以有效地播放一秒的音频。同样,从5秒开始回放则需要从44100 * 8 * 5 = 1764000字节处开始提取音频样本数据。

  为了减少文件大小(并缩减操纵文件开销)我们在mono样本、以11025 hz频率进行记录。这就意味着每个示例中我们只占用4字节(因为没有左/右跟踪,针对单个、mono追踪我们只占用4个字节为)而非8个。所以我们需要计算字节偏移量为:

  startByte= 11025 * 4 * timeInSeconds

  网址如下:http://www.nerdclub.co.uk/lipsync_demo.htm

  但任务还没完成,例如我们仍需要从外部文件加载线索点(并非将其嵌入代码中)。但无论怎样我们已经大体上阐明了设计思想。一旦从外部文件完成线索点和实际mp3音频的加载,我们就有足够的理由说,我们这款属于用户可编辑类型的足球游戏有望实现!


上一页 1 2 3 下一页

评论


相关推荐

技术专区

关闭