2012-02-14 37 views
8

我使用AVAudioPlayer播放.caf文件。我的问题是:我的目的不够响亮。由于iPhone铃声响得更响,我想知道如何将这个音量归档。 我已经试图操作.caf文件,但没有真正成功。有任何想法吗?AVAudioPlayer IOS最大音量级别?

我至今使用的代码:

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

编辑:

[appSoundPlayer setVolume: 1.0]; 

THX 马丁

回答

13

你总是可以在音量设置为最大实际例如:

[appSoundPlayer setVolume: 1.0]; 

除此之外,您可能将不得不编辑文件本身。

+0

Thx Peter,right,1.0 ..复制并粘贴错误。但是,这仍然太安静;( – MartinHappyCoding 2012-02-14 15:14:46

8

Martin,您是否确保系统音量达到最大?如果不是,您想使用MPMusicPlayerController将系统音量调到最大,而不仅仅是最大音量。您可以将其调高到声音片段的长度,然后将其恢复到用户设置的原始音量。

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

嘿,别忘了与MediaPlayer框架链接 – Yeung 2013-10-10 09:50:14

+0

谢谢!有用的评论可能是'MPMusicPlayerController'的'volume'属性已被弃用,如iOS [ ://developer.apple.com/library/ios/documentation/MediaPlayer/Reference/MPMusicPlayerController_ClassReference/#//apple_ref/occ/instp/MPMusicPlayerController/volume)。 – Alex 2016-02-29 16:44:59