2017-06-06 9 views
0

Ich habe ziemlich viele Beiträge über AVAudioPlayer gesehen, aber nones hilft: Ich kann nicht mehr klingen lassen (auch wenn es verwendet mit Xcode zu arbeiten, bevor Upgrade auf 8.3.2)ObjectiveC AVAudioPlayer Volumen 0

Hier ist mein 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; 
} 
} 

`

Der Ausgang ist syst volume : 0.476119 vol : 0.000000 playing with vol : 0.000000 Jeder Hinweis auf, wie man das Volumen zu erhöhen, würde geschätzt. Die Ansicht hat auch eine MPVolumeView, aber jede Aktion darauf würde nur das Systemvolumen ändern.

+0

versuchen, dieses 'AVAudioSession * audioSession = [AVAudioSession sharedInstance]; [audioSession setKategorie: AVAudioSessionCategoryPlayback Fehler: nil]; ' –

+0

@pawan: der oben gepostete Code setzt bereits eine AVaudiosession, ich würde mich freuen, Ihren Vorschlag zu versuchen, aber wo ändert sich etwas? – toto

Antwort

0

der Fehler hier war:

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

sein sollte:

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