2013-05-07 2 views
0

Я разрабатываю приложение, в котором пользователь может выбрать звуковой файл из галереи устройств, и он начнет играть в фоновом режиме приложения во время работы приложения. после его выбора запускается каждый раз, когда приложение запускается, пока пользователь снова не просмотрит и не изменит звуковой файл.ios: как играть в песню в приложении из галереи

Мне нужно скопировать звуковой файл в приложение? или это можно сделать, используя только его путь.

, пожалуйста, дайте мне знать, если кто-нибудь может мне помочь.

ответ

0

Это коды требуемых действий, appSoundPlayer является свойством AVAudioPlayer, объявленного в h-файле. Также этот пример воспроизводит песню в папке ресурса.

Я сделал это согласно моему требованию вы хотите играть в фоновом режиме, так что вам нужно внести некоторые изменения и играть в didFinishLaunchingWithOptions и остановить его в applicationWillTerminate принять во внимание эти 2 метода тоже applicationDidEnterBackground applicationWillEnterForeground

#pragma mark - 
    #pragma mark *play* 
    - (IBAction) playaction { 

     NSString *soundFilePath = [[NSBundle mainBundle] pathForResource:@"songname" ofType:@"mp3"]; 
     NSURL *newURL = [[NSURL alloc] initFileURLWithPath: soundFilePath]; 
     self.soundFileURL = newURL; 
     [newURL release]; 
     [[AVAudioSession sharedInstance] setDelegate: self]; 
     [[AVAudioSession sharedInstance] setCategory: AVAudioSessionCategoryAmbient error: nil]; 

    // Registers the audio route change listener callback function 
    AudioSessionAddPropertyListener (
            kAudioSessionProperty_AudioRouteChange, 
            audioRouteChangeListenerCallback, 
            self 
            ); 

    // Activates the audio session. 

    NSError *activationError = nil; 
    [[AVAudioSession sharedInstance] setActive: YES error: &activationError]; 

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


    [stopbutton setEnabled:YES]; 
    [playbutton setEnabled: NO]; 
    playbutton.hidden=YES; 
    pausebutton.hidden =NO; 
}//playbutton touch up inside 

#pragma mark - 
#pragma mark *pause* 
-(IBAction)pauseaction { 
    [appSoundPlayer pause]; 
    pausebutton.hidden = YES; 
    resumebutton.hidden = NO; 

}//pausebutton touch up inside 

#pragma mark - 
#pragma mark *resume* 
-(IBAction)resumeaction{ 
    [appSoundPlayer prepareToPlay]; 
    [appSoundPlayer setVolume:1.0]; 
    [appSoundPlayer setDelegate: self]; 
    [appSoundPlayer play]; 
    playbutton.hidden=YES; 
    resumebutton.hidden =YES; 
    pausebutton.hidden = NO; 

}//resumebutton touch up inside 

#pragma mark - 
#pragma mark *stop* 
-(IBAction)stopaction{ 

    [appSoundPlayer stop]; 
    [playbutton setEnabled:YES]; 
    [stopbutton setEnabled:NO]; 
    playbutton.hidden=NO; 
    resumebutton.hidden =YES; 
    pausebutton.hidden = YES; 

}//stopbutton touch up inside 
+1

thanx @Prakash Desai, но в этом примере звуковой файл исправлен, но я хочу, чтобы пользователь его выбирал из галереи –

+0

. Посмотрите этот http://developer.apple.com/library/ios/#samplecode/AddMusic/Listings/ReadMe_txt.html# // apple_ref/doc/uid/DTS40008845-ReadMe_txt-DontLinkElementID_9 –

+0

ok ... я скоро перейду через него. nnx –

Смежные вопросы