【问题标题】:iOS How to play alert sound in speaker when recordingiOS录音时如何在扬声器中播放提示音
【发布时间】:2014-07-14 07:32:05
【问题描述】:

我想在录制音频的过程中手动触发播放一些提示音,我希望录制提示音。所以我希望在录制音频期间在扬声器而不是接收器中大声播放警报。

我使用 AVAudioRecorder 录制音频并使用 AVAudioPlayer 播放警报声音。 录音机代码

AVAudioSession *session = [AVAudioSession sharedInstance];

NSError *sessionError;
[session setCategory:AVAudioSessionCategoryRecord error:&sessionError];

if(session == nil)
    NSLog(@"Error creating session: %@", [sessionError description]);
else
    [session setActive:YES error:nil];
recorder = [[AVAudioRecorder alloc] initWithURL:_recordedFile settings:recordSettings error:nil];
[recorder prepareToRecord];
[recorder record];

播放器代码

    AVAudioSession *session = [AVAudioSession sharedInstance];
// session.outputDataSources
NSError *sessionError;
[session setCategory:AVAudioSessionCategoryPlayAndRecord error:&sessionError];

// use the louder speaker
UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
AudioSessionSetProperty (kAudioSessionProperty_OverrideCategoryDefaultToSpeaker,
                         sizeof (audioRouteOverride),&audioRouteOverride);

if(session == nil)
    NSLog(@"Error creating session: %@", [sessionError description]);
else
    [session setActive:YES error:nil];

NSError *error;
player = [[AVAudioPlayer alloc] initWithContentsOfURL:self.filePath error:&error];
player.delegate =self;
player.volume = 1.0;
player.numberOfLoops = 0;
self.timeDuration = player.duration;

如果我停止录制并手动触发播放警报,它会在扬声器中播放。 但是在录制过程中,当我手动触发播放警报时,什么也没有发生。 这里有什么问题吗?或者录音时是否可以在扬声器中播放声音?

【问题讨论】:

    标签: ios audio record playback


    【解决方案1】:

    只需将类别更改如下即可

    [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&err];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-08
      • 2018-06-18
      • 1970-01-01
      相关资源
      最近更新 更多