2012-02-14 29 views
8

Bir .caf dosyasını oynatmak için AVAudioPlayer kullanıyorum. Benim sorunum: amacım için yeterince yüksek değil. IPhone'un zil sesi çok daha yüksek olduğundan bu sesi nasıl arşivleyebileceğimi merak ediyordum. Zaten .caf dosyasını manipüle etmeye çalıştım ama gerçek bir başarı elde etmedim. Herhangi bir fikir?IOS maksimum ses seviyesi?

şimdiye kadar kullanmak kod:

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

Düzenleme:

[appSoundPlayer setVolume: 1.0]; 

Thx Martin Her zaman gerçek maksimum ör hacmi ayarlayabilirsiniz

cevap

13

:

[appSoundPlayer setVolume: 1.0]; 

Bunun dışında muhtemelen dosyayı kendiniz düzenlemeniz gerekecektir.

+0

Thx Peter, sağ, 1.0 .. kopyala yapıştır. Ama bu hala çok sessiz, ( – MartinHappyCoding

8

Martin, sistem sesinin maksimum düzeyde olmasını sağladınız mı? Değilse, sistem hacmini maksimuma çıkarmak için MPMusicPlayerController'ı kullanmak yeterlidir, sadece maksimum avaudioplayer'ı değil. Ses klibinizin uzunluğunu açıp daha sonra kullanıcının ayarladığı orijinal ses seviyesine geri döndürebilirsiniz.

// 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

Hey, MediaPlayer framework ile bağlantı yapmayı unutma. – Yeung

+0

Teşekkürler! Yararlı yorum, '' MPMusicPlayerController' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ' : //developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume). – Alex