2012-02-25 16 views
5

Uygulama arka plana girdiğinde bir ses akışı oynatırken sorun yaşıyorum. Mükemmel çalışıyorMPMoviePlayerController arka planda ses akışını oynatıyor

NSURL *mediaURL = [NSURL URLWithString:@"http://url.to.my.stream"]; 

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:mediaURL]; 

[[NSNotificationCenter defaultCenter] addObserver:self 

             selector:@selector(moviePlayBackDidFinish:) 

              name:MPMoviePlayerPlaybackDidFinishNotification 

              object:nil]; 



[mp setControlStyle:MPMovieControlStyleFullscreen]; 

[mp setMovieSourceType:MPMovieSourceTypeStreaming]; 

[mp setFullscreen:YES]; 



[self.view addSubview:[mp view]]; 



[mp prepareToPlay]; 

[mp play]; 

:

Ben Akışı başlatmaya kodu kullanabilirsiniz. Ancak, uygulama, akımın oynatmayı durdurduğu arka plana girdiğinde, özellik listesinde "App play audio" adlı bayrağı ayarlamış olmama rağmen.

Uygulamamın arka planda ses akışını oynatmasını nasıl sağlayabilirim?

Saygılarımızla, yardım için çok teşekkürler!

cevap

9

Kendim denedim olmadı ama bu umut verici görünüyor: Proje APP-Info.plist için gitmek oluşturulan ve yeni bir satır olarak UIBackgroundModes eklemek olmuştur iOS Multitasking: Background Audio

kez. Daha sonra dizi oluşturmalıdır.

Diziyi açın ve Öğe 0'ın sağına ses olarak ayarlayın.

DÜZENLEME

sizin AVAudioSession düzgün bir şekilde kurulmuş mı?

AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryPlayback error:nil]; 
[audioSession setActive:YES error:nil]; 
+1

evet ben yaptım ama işe yaramadı. Bu eğitimde adam AVAudio Framework kullanıyor. Media Player'ı kullanıyorum çünkü AV Framework ses akışımı nedense oynatmıyor ... – MrBr

+0

Düzenlememe bir göz atın. – dom

+1

Teşekkür ederim adamım! Bu hile yaptı :-) – MrBr

0

Bu kod ilk olarak, öncelikle bu kodu diledi derse girmek ve uygulanması sonrasında, (senin .plis olarak) arka planda müzik çalmaya devam etmek için uygulama izinlerini vermek gerekir, benim için ithalatı çalıştı ve müzik çalma yöntemi.

#import <MediaPlayer/MPNowPlayingInfoCenter.h> 
#import <MediaPlayer/MPMediaItem.h> 
#import <AVFoundation/AVFoundation.h> 

---- o ----

-(void) playMusic{ 

    [[AVAudioSession sharedInstance] setDelegate: self]; 

    NSError *myErr; 

    // Initialize the AVAudioSession here. 
    if (![[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:&myErr]) { 
     // Handle the error here. 
     NSLog(@"Audio Session error %@, %@", myErr, [myErr userInfo]); 
    }else{ 
     // Since there were no errors initializing the session, we'll allow  begin receiving remote control events 
     [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; 
    } 

    //initialize our audio player 
    audioPlayer = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL URLWithString:@"http://www.cocoanetics.com/files/Cocoanetics_031.mp3"]]; 

    [audioPlayer setShouldAutoplay:NO]; 
    [audioPlayer setControlStyle: MPMovieControlStyleEmbedded]; 
    audioPlayer.view.hidden = YES; 

    [audioPlayer prepareToPlay]; 

    [audioPlayer play]; 
}//end playmusic 
+0

Kodunuzla bir açıklama sağlarsanız yardımcı olacaktır. Neyin farklı olduğunu ve nasıl çalıştığını vurgulayın. Kod sadece cevaplar çatılır. –

İlgili konular