将“朗读”功能添加到使用Cocos2D编写的应用程序中

时间:2014-07-10 20:38:23

标签: cocos2d-iphone avaudioplayer

我创建了一个书籍应用程序并使用Cocos2D和物理引擎(Chipmunk)来创建它。我想在其中添加“朗读”功能。 到目前为止,我发现指令/书籍和教程如何使用Epub3和SMIL在使用iBook Author(但由于某些限制我无法使用iBook Author)创建书籍时添加朗读功能。 我还从J. Shapiro那里找到了一个很好的教程,如何使用AVSpeechSynthesizer制作叙述书。这有帮助,只有我想使用录制的声音,而不是合成的声音。我不知道这种方法是否可以修改这样做? 我也知道如何在Sprite Kit框架中完成它。 我找不到的唯一信息是如何在使用Cocos2D编写的应用程序中添加“朗读”功能。可以在SimpleAudioEngine中完成,还是可以与其他引擎(可能来自Sprite Kit框架)结合使用? 我非常感谢,如果有人可以给我一些参考/指针或教程链接,在哪里寻找一些答案如何添加此功能。 提前感谢你。

2 个答案:

答案 0 :(得分:0)

  

我想使用录制的声音,而不是合成声音

好。将您的录音音频文件(caf,wav或mp3格式)添加到项目中。使用以下方式在适当的时间播放:

[[SimpleAudioEngine sharedEngine] playEffect:@"someVoiceRecordingFile.wav"];

答案 1 :(得分:0)

定义朗读对您来说意味着什么,因为我发现很多术语,尤其是像这样的半模糊术语,根据使用者的不同而有所不同。

当你说朗读书时,你基本上是指一个数字故事书,通过简单地播放旁白音频来向你讲故事吗?我已经创建了数十个这样的内容,您要求的内容有多个步骤,具体取决于您在图书中的功能。如果你的意思是简单地播放音频而且就是这样,那么是的,你可以使用SimpleAudioEngine(作为一个选项)在cocos2d中做到这一点,但我想你已经知道这就是为什么这个问题有一个模糊的标签。无论哪种方式,你可能都不想将叙事作为一种效果而是流动它。要与背景音乐一起练习,您可以通过左声道播放背景音乐,并通过右侧播放旁白。您可以轻松地向SimpleAudioEngine添加一个方法,使其变得漂亮和整洁。为了帮助您入门,可以使用与此相似的内容来访问正确的频道:

CDLongAudioSource* sound = [[CDAudioManager sharedManager] audioSourceForChannel:kASC_Right];

if ([sound isPlaying])
{
    [sound stop];
}

[sound load:fileName];

还可以使用适当的设置和推荐格式来播放音频,例如aifc(或者通常是所有音频)。虽然我相信你可以在没有首先解压缩的情况下播放mp3,但问题在于时间问题。如果您使用突出显示的文本或循环音频,那么aifc是更好的选择。我个人从未有过使用mp3的理由。即使只是因为文件大小的增加,带有旁白的Wav也是我要避免的。如果mp3甚至用于流媒体解压缩(我不确定它是否在我脑海中),那么你的内存中会出现巨大的高峰,这将是非常不受欢迎的,有时甚至是正确的坏。

还有许多其他事情可以进入,但这些是基本的第一步。如果你想做突出显示的文字,每个单词的动画等等,那么当然需要更多的工作,你需要适应cocos2d,SpriteKit或你决定使用的任何东西。我很快就会在一天之内做一个系列教程,所以我将介绍所有这些内容。

另一方面,如果你正在谈论录制别人的声音并让它播放,即母亲录制自己阅读故事,以便她的孩子在使用你的应用时可以听到她的声音,那么你&#39 ; d只需录制音频,就像录制任何其他音频一样,将其保存到设备中,并在页面以正确的阅读模式显示时播放(或者您个人称之为)。一个值得关注的地方是AVAudioRecorder,它是AVFoundation框架的一部分。简单的Google" iOS音频录制"例如,如果你需要它们。