gpt4 book ai didi

objective-c - 对于 iPhone 上的类似卡拉 OK 的应用程序,我应该如何使用音频突出显示文本?

转载 作者:可可西里 更新时间:2023-11-01 03:12:03 25 4
gpt4 key购买 nike

例如,我有一个应用程序可以一次显示 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com