代码之家  ›  专栏  ›  技术社区  ›  Rony Rozen

当uiScrollView滚动时播放声音

  •  1
  • Rony Rozen  · 技术社区  · 15 年前

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

    怎么能做到?将非常感谢代码示例…

    谢谢,

    2 回复  |  直到 15 年前
        1
  •  5
  •   Rony Rozen    15 年前

    这是我使用的代码:

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

    SoundEffect *soundEffect;
    

    然后,我通过添加 <UIScrollViewDelegate> 到视图控制器的.h文件,并设置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个像素向任意方向发射一次,但您可以将其更改为适合您需要的常量值。 它对我很有用,希望它也能帮助其他人…

        2
  •  1
  •   Ben Gottlieb    15 年前

    尝试将ViewController指定为滚动视图的委托,然后添加-ScrollViewwillBeginDragging:方法。