【问题标题】:highlighting text as it is narrated(audio .mp3)在叙述时突出显示文本(音频 .mp3)
【发布时间】:2010-11-18 03:29:19
【问题描述】:

我正在使用 Cocos2d 制作所有动画精灵/过渡内容,但我不确定如何在叙述时突出显示文本。

示例: “Jack 和 Jill,喝得饱饱的,喝得太醉了,不能去喝水。” 正如文字所叙述的那样(.mp3 在每一页上播放),文本将被突出显示。

如果有人有线索或示例代码,我将不胜感激。

谢谢
湿婆。

【问题讨论】:

  • 谁能帮帮我,我急需。
  • 直到现在还没有人遇到这种情况。请有任何想法

标签: objective-c cocoa-touch ipad cocos2d-iphone


【解决方案1】:

我不确定你是否可以从音频中“数”字,我真的没有涉足 iphone 上的音频足以从那个角度给出任何明确的建议,但如果是我,我会这样做.

它可能看起来有点笨拙,但它似乎可以满足您的需求。

我会有一个 CCScheduler,它可能每 0.5 秒运行一次。

我的音频文件也有一个数组,可能保存到一个 plist 中(因此多个音频文件可以“数组”存储到字典中。

该数组将保存整数,这些将表示自音频开始播放以来经过的时间,objectAtIndex:0 将是最小的数字,并且每一个都会从那里上升。

您可以为句子或音频中的每个单词添加一个。

当您开始播放音频文件时,将变量保存为 [NSDate date](记录音频开始播放的确切时间(足够接近))。

在您的调度程序中,检查 [array objectAtIndex:0] 自音频开始播放以来经过的时间量,如果数组对象较小,则触发一个在该部分文本后面绘制“突出显示”的方法,然后 [removeObjectAtIndex:0]。

如果 objectAtIndex:0 大于经过的时间,则直接返回;

您将如何跟踪单词的位置,也许将每个单词单独绘制为单独的 CCSprite,突出显示的方法取决于您自己的喜好,但这是我可能采用的一种方法。

【讨论】:

  • 谢谢Bongeh,我会试试的。感谢您的指导。
  • 我尝试实现上述过程我没有得到它,如果您有任何示例代码,请与我分享?
  • 没有给你写出来,不,恐怕我没有。你具体卡在哪里了?
【解决方案2】:

为此,您需要下载 .srt 文件,其中包含每行的歌词、开始时间和结束时间。

【讨论】:

    【解决方案3】:

    请查看本教程中标有“The Hills are Alive, with the Sound of... Audio Files :]”的部分。它向您展示了如何使用 Audacity 来录制您的音频、标记每个单词并导出一个文本文件来指示每个单词的开始时间。

    http://www.raywenderlich.com/19415/how-to-make-an-interactive-ebook-without-any-code

    【讨论】:

      猜你喜欢
      • 2022-09-25
      • 2020-04-16
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 1970-01-01
      • 2021-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多