滚动UIScrollView时播放声音

时间:2010-04-21 11:59:46

标签: iphone audio uiscrollview

我有一个滚动视图,可以滚动到两侧(只有左右,而不是上下)。 每当滚动视图移动X像素到任意一侧时,我想播放一个短的声音(不到一秒钟)。

如何做到这一点?我们非常感谢代码示例...

谢谢,

2 个答案:

答案 0 :(得分:5)

以下是我使用的代码:

我将SoundEffect.h和SoundEffect.m文件添加到我的项目中(您可以在线找到它们)。 然后,我创建了一个声音效果实例:

SoundEffect *soundEffect;

然后,我通过将<UIScrollViewDelegate>添加到视图控制器的.h文件并设置UIScrollView的相关插座,将我的UIViewController设置为我的UIScrollView的委托。

-(void)viewDidLoad方法中,我初始化了我的音效:

NSBundle *mainBundle = [NSBundle mainBundle];
soundEffect = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"Tik" ofType:@"wav"]];

然后,我实现了这两种方法:

#pragma mark -
#pragma mark Scroll View Delegate Methods

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    lastScrollPosition = scrollView.contentOffset.x / 55;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{   
    if ((int)(scrollView.contentOffset.x / 55) != lastScrollPosition1)
    {
        lastScrollPosition1 = scrollView.contentOffset.x / 55;
        [soundEffect1 play];
    }
}

我需要声音效果才能向每个方向发射55个像素,但您可以将其更改为适合您需要的恒定值。 它对我很有用,希望它也能帮助别人......

答案 1 :(得分:1)

尝试将viewController指定为滚动视图的委托,并添加-scrollViewWillBeginDragging:方法。