0

さて、私はこれを調べてみたので、重複していませんが、何かを見逃した可能性があります。とにかく、私のアプリには、レコードをヒットしたときに再生を開始する必要がある曲があります。したがって、レコードをヒットすると、AVAudioRecorderが録音を開始し、すでに初期化されているAVAudioPlayerが曲の再生を開始します。それでも、曲の音量は非常に静かになります。同時に録音しようとせずに単に曲を再生すると、フルボリュームで再生されるので、曲ではないことはわかっています。助けてくれる人はいますか?ありがとう。

初期化の方法:

NSDictionary *recordSettings = [NSDictionary 
                                dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt:AVAudioQualityMin],
                                AVEncoderAudioQualityKey,
                                [NSNumber numberWithInt:16], 
                                AVEncoderBitRateKey,
                                [NSNumber numberWithInt: 2], 
                                AVNumberOfChannelsKey,
                                [NSNumber numberWithFloat:44010.0], 
                                AVSampleRateKey,
                                nil];

NSError *error = nil;

audioRecorder = [[AVAudioRecorder alloc]
                 initWithURL:soundFileURL
                 settings:recordSettings
                 error:&error];

if (error)
{
    NSLog(@"error: %@", [error localizedDescription]);

} else {
    [audioRecorder prepareToRecord];
}

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                     pathForResource:"Rang De"
                                     ofType:@"mp3"]];


audioPlayerForPreloadedMusic = [[AVAudioPlayer alloc]
                                initWithContentsOfURL:url
                                error:&error];
if (error)
{
    NSLog(@"Error in audioPlayer: %@", 
          [error localizedDescription]);
} else 
{
    audioPlayerForPreloadedMusic.delegate = self;
    [audioPlayerForPreloadedMusic prepareToPlay];
}

私の遊び方:

-(void) recordAudio
{
    if (!audioRecorder.recording)
    {
        playButton.enabled = NO;
        stopButton.enabled = YES;
            [audioRecorder record];

        if(!audioPlayerForPreloadedMusic.playing)
            [audioPlayerForPreloadedMusic play];
        else {
            NSLog(@"music is playing, so won't play");
        }
    }
}
4

1 に答える 1

1

録音を開始すると、スピーカーからではなく、イヤピースから曲を再生します。

この自動切り替えを防ぐためのオーディオセッションオーバーライドがあります。AppleのiOSAPIドキュメントのkAudioSessionProperty_OverrideAudioRouteおよびkAudioSessionOverrideAudioRoute_Speakerの使用を参照してください。

于 2012-07-31T03:36:41.060 に答える