- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
例如,我有一个应用程序可以一次显示 3 或 4 行歌词 block 。现在,我想触发一个音频文件开始播放,然后用音频本身来计时突出显示歌词。有点像从一个词跳到另一个词的弹跳球。
我唯一能想到的是,我需要为每个音频文件创建元数据,这样我就可以启动一个与音频文件一起运行的计时器。或者也许 iOS 中的音频播放器可以公开其自己的运行计时器,我可以触发突出显示的单词在特定时间点发生变化?
知道最好的方法吗?如果我必须每秒检查单词是否应该更改,我认为这可能会对处理器造成负担,但我不知道如何触发它。
最佳答案
这不是我所知道的最佳答案,但在使用 Core Animation 的 WWDC 2011 视频之一中讨论了一个非常相似的解决方案。
找到名为 Core Animation Essentials 的视频(对于 WWDC 2011,iTunes U 上应该是视频 421)。这个例子应该在第 29 分钟左右。基本上,场景是有一个球在随着歌曲播放的歌词上弹跳。该项目讨论了如何使用有趣的想法为单词的时间和位置设置动画...
虽然设计需要一些时间,但可以实现一个带有 NSTimer 的项目,同时播放您的歌曲。实现该项目,以便每次在屏幕上按下时,都会将上次时间间隔的偏移量插入到 NSMutableSArray 中,然后将其写入文件。现在,运行项目并通过在每个单词被唱出时按下来为单词制作时间戳。 (这假设您已经事先知道要执行的歌曲并且歌唱速度不太激烈)。好的...现在您有了元数据。
我建议首先尝试弹跳球,因为已经描述了实现方式,我发现您尝试实现的方式存在一些问题。最值得注意的是,(我可能弄错了),但我认为 UIlabel/NSString 没有任何方法来突出显示子字符串。这意味着您可能必须为每个单独的单词制作一个标签,这可能会变得非常乏味……所以请查看该视频,希望您能从中有所收获。祝你好运!
关于objective-c - 对于 iPhone 上的类似卡拉 OK 的应用程序,我应该如何使用音频突出显示文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7747070/
I want to create Karaoke type app. My app will take music from itunes and save it in sqlite database
我有一个列,其类型为从 json 文件推导的 array。我想将数组 转换为字符串,以便我可以将这个数组列按原样保留在 hive 中并将其作为单个列导出到 RDBMS。 temp.json {"pr
我需要你帮助我。我尝试了多种方法但不起作用。我尝试使用 ffmpeg 将 mp3 文件转换为卡拉 OK。 我尝试过这个但不起作用: $cmd = 'ffmpeg -i file.mp3 -af "hi
我是一名优秀的程序员,十分优秀!