2012-02-14 25 views
8

Uso el AVAudioPlayer para reproducir un archivo .caf. Mi problema es que no es lo suficientemente fuerte para mi propósito. Como el sonido del timbre del iPhone es mucho más fuerte, me preguntaba cómo puedo archivar este volumen. Ya traté de manipular el archivo .caf pero sin éxito. ¿Algunas ideas?Nivel máximo de volumen IOS para AVAudioPlayer?

El código que uso hasta el momento:

AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: url error: nil]; 
self.appSoundPlayer = newPlayer; 
[newPlayer release]; 
[appSoundPlayer prepareToPlay]; 
[appSoundPlayer setVolume: 0.8]; 
[appSoundPlayer setDelegate: self]; 
    [appSoundPlayer play]; 

Editar:

[appSoundPlayer setVolume: 1.0]; 

Thx Martin

Respuesta

13

Siempre se puede ajustar el volumen al máximo real por ejemplo:

[appSoundPlayer setVolume: 1.0]; 

Aparte de eso, probablemente tendrá que editar el archivo.

+0

Thx Peter, right, 1.0 .. copie y pegue el error. Pero todavía es demasiado silencioso; ( – MartinHappyCoding

8

Martin, ¿se ha asegurado de que el volumen del sistema sea máximo? De lo contrario, desea usar MPMusicPlayerController para subir el volumen del sistema al máximo, y no solo el máximo del avaDisplay. Puede subirlo por la duración de su clip de sonido y luego volver a establecerlo en el volumen original configurado por el usuario.

// Import headers. Link to "MediaPlayer Framework" 
#import <MediaPlayer/MediaPlayer.h> 

//set up audio session 
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord error:NULL]; 

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

NSURL *soundUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"HsTR_soundEFX_2-1" ofType:@"mp3"]]; 
audioAlert= [[AVAudioPlayer alloc] initWithContentsOfURL:soundUrl error:nil]; 
audioAlert.delegate = self; 
[audioAlert prepareToPlay];//audioAlert is an AVAudioPLayer declared in header 

//and whereever you want to play the sound, call the lines below 
float currentVolume=[MPMusicPlayerController applicationMusicPlayer].volume; //grab current User volume 
[[MPMusicPlayerController applicationMusicPlayer] setVolume:1.0];//set system vol to max 
[audioAlert play]; 
[NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(setVolumeBackToNormal)userInfo:nil repeats:NO]; 

//and the setVolumeBackToNormal function calls this line below 
[[MPMusicPlayerController applicationMusicPlayer]setVolume:currentVolume];//returns volume to original setting 
+1

Oye, no te olvides de vincular con el marco de MediaPlayer. – Yeung

+0

Gracias! Comentario útil podría ser que la propiedad 'volumen' de' MPMusicPlayerController' está en desuso en iOS 7.0 como se indica [aquí] (https : //developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex

Cuestiones relacionadas