IOS:滚动视图中的声音
Posted
技术标签:
【中文标题】IOS:滚动视图中的声音【英文标题】:IOS: sound in a scrollview 【发布时间】:2011-12-06 15:55:55 【问题描述】:我有这个代码:
- (void) setAudioscroll
NSString *path = [NSString stringWithFormat:@"%@/%@",
[[NSBundle mainBundle] resourcePath],
@"scroll1.mp3"];
NSURL *filePath = [NSURL fileURLWithPath:path isDirectory:NO];
soundScroll = [[AVAudioPlayer alloc] initWithContentsOfURL:filePath error:nil];
[soundScroll prepareToPlay];
- (void) scrollViewDidScroll:(UIScrollView *)scrollView
[soundScroll play];
然后我想在滚动视图滚动时发出声音。但是当我滚动它时,我发现它不能正常工作,因为当它调用 mp3 声音时,它会在短时间内停止滚动。我可以使用单独的线程吗?
【问题讨论】:
【参考方案1】:- (void) scrollViewDidScroll:(UIScrollView *)scrollView
在单次滚动期间被多次调用,时间间隔很短,您不想在每次发生此回调时都调用[soundScroll play];
,而是使用此回调
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
以便在滚动开始时播放一次声音,或者其中任何一个
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
如果您想要用户滚动后播放的声音。如果你想让一个短的声音在滚动中连续循环,你可以将AVAudioPlayer
numberOfLoops 属性设置为负值,使其无限循环,然后在滚动停止时停止。
【讨论】:
我明白你告诉我的,但我的 mp3 是一个“剪辑”,不到一秒钟……然后我多次调用 mp3 在scrollViewDidScroll中放一个NSLog,你会看到它在滚动过程中的调用速度。您可以做的是将 AVAudioPlayer numberOfLoops 属性设置为负值,使其无限循环,然后在滚动停止时停止。以上是关于IOS:滚动视图中的声音的主要内容,如果未能解决你的问题,请参考以下文章