【问题标题】:Problem in playing & recording sound with two different players使用两个不同的播放器播放和录制声音的问题
【发布时间】:2011-01-19 04:37:51
【问题描述】:

我在我的 iPad 项目中实现了两个 AVAudioPlayer。 我正在用一个播放器对象播放声音 并与其他玩家同时录制。

第一个场景

1.Player1 正在录制我说的话。 2.同时player1也在录制player2播放的音乐。

*如果我没有将任何带麦克风的耳机插入到我的 iPad 上,这种情况就可以正常工作。

*但是,如果我将耳机插入 iPad 并重复上述场景,则会观察到以下几点:

我。我可以在耳机中听到 player2 播放的音乐。

二。但是当我停止通过耳机的麦克风录制我的声音后,播放录制的曲目时没有音乐声音。我只能听到通过耳机麦克风录制的声音。这是我的问题。 我希望使用“带麦克风的耳机”我的应用程序应该与场景 1 一样工作。

我正在为我的 AVAudioSession 使用以下设置:

AVAudioSession *audioSession = [AVAudioSession sharedInstance];
            NSError *err = nil;
            [audioSession setCategory :AVAudioSessionCategoryPlayAndRecord error:&err];

以下是录音机的录音设置:

NSDictionary *recordSettings = [[NSDictionary alloc] initWithObjectsAndKeys:
                                            [NSNumber numberWithFloat: 44100.0],AVSampleRateKey,
                                            [NSNumber numberWithInt: kAudioFormatLinearPCM],AVFormatIDKey,
                                            [NSNumber numberWithInt: 1], AVNumberOfChannelsKey,
                                            [NSNumber numberWithInt: AVAudioQualityMax],AVEncoderAudioQualityKey,nil];

曲目以 .wav 文件格式保存。

另外,player2播放的音乐是.wav或.mp3格式的。

请帮我解决这个问题。

【问题讨论】:

    标签: iphone objective-c ipad avaudioplayer avaudiorecorder


    【解决方案1】:

    我对 AVAudioSession 有点生疏,因此无法提供直接帮助。我能说的是,往往会发生的情况是,当人们发现他们无法使用 AVAudioSession 做他们想做的事情时,他们会转向 OpenAL。 OpenAL 开始可能有点令人生畏,但我所做的是下载 Cocos2D。 Cocos2D (CocosDenshion) 的好处是它有这些简单的 OpenAL 包装类。 并且代码全部暴露出来,所以你可以在里面四处看看,看看它是如何工作的。设置起来有点棘手(您必须弄乱框架并将源代码添加到您的项目中),但是一旦您进行了排序,一切都很好。

    这对我来说是最好的路径,希望它也适合你!

    ...再次阅读问题,是否只是当您戴上耳机/耳机时录音机(正在录制环境声音)没有录制任何音乐声音?对此的解决方案似乎是播放原始音乐以及录音(同时)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 2012-06-07
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多