Reply To: OpenEars / AVPlayer Issue

Home Forums OpenEars OpenEars / AVPlayer Issue Reply To: OpenEars / AVPlayer Issue

#1017377
harrypell
Participant

Thanks Josh & Halle.

That does seem to have done the trick. It slows things down a little, but that’s preferable to random crashing : )

Thanks for you help!

In case anyone else is wondering how to fix this. This is what I did…

First you add this to your header –

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
#import <OpenEars/AudioSessionManager.h>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Then you need to initialise the AVAudio session so you can manually reset it
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
NSError *activationError = nil;
BOOL success = [[AVAudioSession sharedInstance] setActive: YES error: &activationError];

if (!success) {
NSLog(@”Audio Session Error”);
}
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

After suspending recognition in OpenEars with this –

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[self.pocketsphinxController suspendRecognition];
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

– manually reset the audio session on a delay with this call –

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[self performSelector:@selector(reconfigureAudioForPlayingMovie) withObject:nil afterDelay: 1.0];
}
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

– and this (this is the AVAudioSessionCategory I believe I need for playing an M4V in AVPlayer or an Mp3 in AVAudioPlayer ) –

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
-(void)reconfigureAudioForPlayingMovie {
NSError *setCategoryError = nil;
BOOL success = [[AVAudioSession sharedInstance]
setCategory: AVAudioSessionCategoryAmbient
error: &setCategoryError];

if (!success) {
NSLog(@”Audio Session Error”);
}
NSLog(@”Audio Session Reconfigured”);

}
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

And then give a little delay before playing your video/audio.

When you want to listen again you resume the Audio session and OpenEars

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[[AudioSessionManager sharedAudioSessionManager] startAudioSession];
[self.pocketsphinxController resumeRecognition];
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

I’ve been testing this most of the day and playing around with how long the delays need to be.

I’ll post an update here if I figure anything else out.

Harriet