2012-02-25 47 views
5

Tôi gặp sự cố khi phát luồng âm thanh khi ứng dụng vào nền.MPMoviePlayerController phát dòng âm thanh ở chế độ nền

tôi sử dụng mã để bắt đầu dòng:

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]; 

Nó hoạt động hoàn hảo. Nhưng mặc dù tôi đã đặt cờ 'Ứng dụng phát âm thanh' trong danh sách thuộc tính khi ứng dụng chuyển sang nền mà luồng dừng phát.

Làm cách nào để ứng dụng của tôi phát luồng âm thanh trong nền?

Trân trọng và cảm ơn rất nhiều sự trợ giúp!

Trả lời

9

tôi đã không thử nó bản thân mình nhưng điều này có vẻ đầy hứa hẹn: iOS Multitasking: Background Audio

Khi dự án đã được tạo ra đi để APP-Info.plist và thêm UIBackgroundModes như một hàng mới. Sau đó nó sẽ tạo mảng.

Mở mảng và ở bên phải của Mục 0 đặt nó thành âm thanh.

EDIT

là AVAudioSession của bạn thiết lập đúng cách?

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

vâng tôi đã làm điều đó nhưng nó đã không làm việc. Trong hướng dẫn này, anh chàng đang sử dụng AVAudio Framework. Tôi đang sử dụng Trình phát đa phương tiện vì Khung hình AV không phát luồng âm thanh của tôi vì một số lý do ... – MrBr

+0

Hãy xem bản chỉnh sửa của tôi. – dom

+1

Cảm ơn người đàn ông !! Điều đó đã làm các trick :-) – MrBr

0

Mã này làm việc cho tôi, trước tiên bạn phải cho phép ứng dụng của bạn để tiếp tục chơi nhạc ở chế độ nền (Trong .plis của bạn), sau đó đi đến lớp học muốn và thực hiện các mã này, đầu tiên nhập khẩu và phương pháp chơi nhạc.

#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

Nó sẽ giúp đỡ nếu bạn sẽ cung cấp một lời giải thích với mã của bạn. Làm nổi bật những gì là khác nhau và làm thế nào bạn có nó để làm việc. Mã chỉ câu trả lời được cau mày. –

Các vấn đề liên quan