【问题标题】:iPhone: How to play a sound on top of the iPod sound?iPhone:如何在 iPod 声音上播放声音?
【发布时间】:2011-05-29 12:51:34
【问题描述】:

我正在尝试在 iPod 音乐上播放声音,但是当我进入我的应用程序时,iPod 声音会自动静音。我试过了:

UInt32 sessionCategory = kAudioSessionCategory_AmbientSound; 
        AudioSessionSetProperty (kAudioSessionProperty_AudioCategory,                                 
                                 sizeof (sessionCategory),
                                 &sessionCategory                                 
                                 );

但可能是因为我使用 RemoteIO/Audio Units 来播放我的声音,所以这没有效果(不确定这是否是原因,但它肯定什么都没做......声音仍然停止)

我错过了什么?

【问题讨论】:

    标签: iphone objective-c ios core-audio audiounit


    【解决方案1】:

    由于某种原因,问题中的代码不起作用,但这是有效的:

    [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil];
    

    【讨论】:

      【解决方案2】:

      AudioSessionSetProperty 返回错误,你在检查吗?

      您可能忘记调用 AudioSessionInitialize,您不需要对 AVFoundation 包装器执行此操作。

      【讨论】:

      • 确实,我没有打电话给AudioSessionInitialize,但是,奇怪的是我检查了它没有返回错误,会选择你的答案,因为它解释了为什么上面的代码不起作用
      【解决方案3】:
      @property (nonatomic, strong) AVAudioPlayer * avAudioPlayer;
      
      
      NSString *zeroAudioPath = [[NSBundle mainBundle] pathForResource:@"customSound" ofType:@"wav"];
      NSURL *file = [[NSURL alloc] initFileURLWithPath:zeroAudioPath];
      AVAudioPlayer *audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:file
                                                                       error:nil];
      self.avAudioPlayer = audioPlayer;
      self.avAudioPlayer.delegate = self;
      [_zeroAudioPlayer prepareToPlay];
      AVAudioSession *session = [AVAudioSession sharedInstance];
      [session setCategory:AVAudioSessionCategoryPlayback error:&error];
      [_zeroAudioPlayer play];
      

      希望对你有帮助。

      【讨论】:

        猜你喜欢
        • 2011-02-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-17
        • 2011-07-29
        • 1970-01-01
        • 2012-07-17
        • 2012-10-18
        相关资源
        最近更新 更多