2017-06-06 5 views
0

J'ai vu assez de nombreux messages sur AVAudioPlayer mais nones aide: Je ne peux pas obtenir un son plus (même si elle travaillait avec Xcode avant mise à niveau 8.3.2)ObjectiveC le volume est AVAudioPlayer 0

Voici mon code :

AVAudioPlayer *audioPlayerObj; 
AVAudioSession *session; 
[...] 
- (IBAction)playSound:(id)sender { 
audioPlayerObj.delegate = self; 

if(playButton.isSelected){   
    playButton.selected=NO; 
    (void) [audioPlayerObj stop]; 
} 
else{ 
    session = nil; 
    {NSError * _error; 

     session = [AVAudioSession sharedInstance]; 
     [session setCategory:AVAudioSessionCategoryPlayback 
         error:&_error]; 
     [session setActive:YES error:&_error]; 
     if(_error !=nil) 
     { NSLog(@"could not init the audio player session %@ ", _error); 
     } 

    } 

    NSString * tune =[NSString stringWithFormat:@"%@.wav",[pickerViewArray objectAtIndex:[pickerView selectedRowInComponent:0]]]; 
    NSString *path =[[NSBundle mainBundle] pathForResource:tune ofType:@""]; 

    NSURL * actualFilePath= [NSURL fileURLWithPath:path]; 
NSError *error; 

(void)[audioPlayerObj initWithContentsOfURL:actualFilePath error:&error]; 

    [audioPlayerObj prepareToPlay]; 


    if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0")) 
    { 
    [audioPlayerObj setVolume:0.99 fadeDuration: 1]; 

    } 
    NSLog(@"syst volume : %f", [session outputVolume]); 
    NSLog(@"vol : %f\n",[audioPlayerObj volume]); 

if(error !=nil) 
{ NSLog(@"could not init the audio player %@ ", error); 
    audioPlayerObj=nil; 

} 
else 
{ 
    (void) [audioPlayerObj setNumberOfLoops:-1 ]; 
    (void) [audioPlayerObj play]; 
    NSLog(@"playing with vol : %f\n",[audioPlayerObj volume]); 
    [audioPlayerObj setVolume:0.99 fadeDuration: 1]; 
    playButton.selected=YES; 
} 
} 

`

La sortie est syst volume : 0.476119 vol : 0.000000 playing with vol : 0.000000 Toute indication sur la façon d'augmenter ce volume serait apprécié. La vue a également un MPVolumeView, mais toute action sur celle-ci ne ferait que modifier le volume du système.

+0

essayer ce 'AVAudioSession * audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory: AVAudioSessionCategoryAugly error: nil]; ' –

+0

@pawan: le code ci-dessus définit déjà une AVaudiosession, je serais heureux d'essayer votre suggestion mais où cela change quelque chose? – toto

Répondre

0

l'erreur était ici:

(void)[audioPlayerObj initWithContentsOfURL:actualFilePath error:&error]; 

aurait dû être:

audioPlayerObj = [[AVAudioPlayer alloc] initWithContentsOfURL:actualFilePath error:&error];