IOS: ScrollView 中的声音

标签 ios xcode uiscrollview mp3

我有这个代码:

- (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];
}

然后我想在scrollview滚动的时候发出声音。但是当我滚动它时,我发现它不能正常工作,因为当它调用 mp3 声音时,它会短时间停止滚动。我可以使用单独的线程吗?

最佳答案

- (void) scrollViewDidScroll:(UIScrollView *)scrollView

在一次滚动中多次调用,时间间隔很短,您不希望每次调用 [soundScroll play]; 时调用此回调,而是使用此回调

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView

以便在滚动开始时播放一次声音,或者两者之一

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

如果您希望在用户滚动后播放声音。如果您希望短声音在滚动中连续循环,您可以将 AVAudioPlayer numberOfLoops 属性设置为负值,以便它无限循环,然后在滚动停止时停止它。

关于IOS: ScrollView 中的声音,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8402820/

相关文章:

javascript - 上传到 Cloudinary API - 文件参数无效

ios - 在 ReactiveCocoa 中订阅信号进行网络调用的正确替代方法是什么?

ios - 带有 unicode NSString 的 UILabel 文本

ios - UIImagePickerController:检查返回的图像是横向还是纵向?

ios - CFBundleShortVersionString 不匹配

ios - 运行 Xcode UI 测试时如何禁用自动完成?

ios - 如何获取 INFOPLIST_FILE 名称 iOS

ios - UIImageView setImage While UIScrollView is Scrolling

objective-c - 当对象在里面时 UIScrollView 不滚动

ios - 更改 ScrollView 中的按钮位置