jvl
jvl

Reputation: 53

Output sound to receiver and not to speaker

My audio plays from the speaker and I want it play from the receiver (with a button). At first I am trying to force the sound to output from the receiver. (I want to be compatible with iOS 3.2)

Here is what i have just after the [super viewDidLoad];

  [[AVAudioSession sharedInstance] setDelegate: self];
    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error: nil];

    // UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_Speaker;
    UInt32 audioRouteOverride = kAudioSessionOverrideAudioRoute_None;
    AudioSessionSetProperty (kAudioSessionProperty_OverrideAudioRoute,sizeof (audioRouteOverride),&audioRouteOverride);

  [[AVAudioSession sharedInstance] setActive:YES error:nil];

and later when I call the play :

NSURL *url = [NSURL fileURLWithPath:[[NSBundle mainBundle]
                                         pathForResource:lblText.text
                                         ofType:@"mp3"]];

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

    }

    [self playAudio];

    MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:[volumeSlider frame]] autorelease];
    [volumeSlider removeFromSuperview];
    [self.view addSubview:volumeView];

What am I doing wrong ?

Upvotes: 2

Views: 1871

Answers (1)

jvl
jvl

Reputation: 53

Here is the answer : The override is only applicable to the kAudioSessionCategory_PlayAndRecord category and not to AVAudioSessionCategoryPlayback.

https://developer.apple.com/library/ios/#qa/qa1754/_index.html

Upvotes: 1

Related Questions