84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
显示一段文字,然后播放一段音频时,要求能够在播放到哪个单词时就高亮显示相应单词;点具体的某一个单词,也能朗读该特定单词,同时将其高亮。用ObjC实现的话,大家有什么好的办法么?
比如在屏幕上显示如下文字:Hello, SegmentFault. How old are you? 在音频文件播放到Hello时,Hello需要高亮;播放到How时,How高亮。同时,点击SegmentFault时,SegmentFault能够单独被朗读出来,同时背景高亮。
谢谢~
走同样的路,发现不同的人生
Player 在播放音频文件时,它不会知道现在读的是那一个单词,所以你得准备一个时间数组,放在一个plist 文件里面,在播放前读到一个 NSArray 里面,时间数组记录着每个单词在音频文件中的起始时间和结束时间。用这个数组再结合 Player 的 currentTime 属性,你就能判断当前正在读那个单词或者是在两个单词之间的空白阶段,再将那个单词所在的 label 高亮/变色 处理,注意:每个单词都要作为单独的 label 画在屏幕上。同样,你点击一个单词(label),就从时间数组中读出那个单词的起始时间和结束时间,将 Player 的 currentTime 设置为起始时间,Player 便开始读那个单词,然后在 currentTime 到结束时间后 pause 掉 Player ,这样便完成点击读某个单词。
高亮单词可以使用QuartzCore自己控制文字绘制,这样可控的能力比较强。
原理参考https://github.com/iosdeveloper/Slide...,demo里实现了和iPhone滑动解锁的闪动label相同外观的控件
Player 在播放音频文件时,它不会知道现在读的是那一个单词,所以你得准备一个时间数组,放在一个plist 文件里面,在播放前读到一个 NSArray 里面,时间数组记录着每个单词在音频文件中的起始时间和结束时间。用这个数组再结合 Player 的 currentTime 属性,你就能判断当前正在读那个单词或者是在两个单词之间的空白阶段,再将那个单词所在的 label 高亮/变色 处理,注意:每个单词都要作为单独的 label 画在屏幕上。同样,你点击一个单词(label),就从时间数组中读出那个单词的起始时间和结束时间,将 Player 的 currentTime 设置为起始时间,Player 便开始读那个单词,然后在 currentTime 到结束时间后 pause 掉 Player ,这样便完成点击读某个单词。
高亮单词可以使用QuartzCore自己控制文字绘制,这样可控的能力比较强。
原理参考https://github.com/iosdeveloper/Slide...,demo里实现了和iPhone滑动解锁的闪动label相同外观的控件