ios - teclas - Cómo hacer que MPMoviePlayerController ignore el interruptor de silencio
no funcionan los botones del iphone (5)
Después de importar AVFoundation, simplemente ponga esto en su delegado:
[[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryPlayback error: nil];
Quiero reproducir un video usando MPMoviePlayerController
pero quiero que ignore el interruptor de silencio, similar al comportamiento del reproductor de video de Youtube.
¿Algunas ideas?
Para cualquier persona en el futuro, sé que esto ya ha sido respondido, pero tuve un problema con la reproducción de un video en mi aplicación que causó que las aplicaciones como spotify, youtube, etc. dejaran de reproducir su audio, así que termino usando esto:
NSError *silentSwitcherror = nil;
BOOL silentSwitchSuccess = [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:&silentSwitcherror];
if (silentSwitchSuccess)
{
//put whatever video code you are trying to play
}
else
{
//put how to handle failed instances.
}
Use la categoría AVAudioSessionCategoryPlayback
y su aplicación ignorará el interruptor de silencio como la aplicación de Youtube.
Por ejemplo (inspirado por Ken Pletzer en los comentarios):
#import <AVFoundation/AVFoundation.h>
// note: you also need to add AVfoundation.framework to your project''s
// list of linked frameworks
NSError *error = nil;
BOOL success = [[AVAudioSession sharedInstance]
setCategory:AVAudioSessionCategoryPlayback
error:&error];
if (!success) {
// Handle error here, as appropriate
}
en Swift: haga esto una vez antes de reproducir sonido / video (por ejemplo, al principio de su aplicación)
do{
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
} catch {
//Didn''t work
}
_player.useApplicationAudioSession = NO;