2013-12-04 1 views
1
#import "SctreamAudioViewController.h" 
#import <AVFoundation/AVFoundation.h> 
#import "SecondViewController.h" 

@interface SctreamAudioViewController() 
@property (nonatomic, strong) AVPlayer *player; 
@end 

@implementation SctreamAudioViewController 

#define STREAM @"http://localhost/audio.mp3" 

- (void)viewDidLoad 
{ 
[super viewDidLoad]; 
// Do any additional setup after loading the view, typically from a nib. 
AVAudioSession *audioSession = [AVAudioSession sharedInstance]; 
[audioSession setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:nil]; 
[audioSession setActive:YES error:nil]; 
NSURL *url = [[NSURL alloc] initWithString:STREAM]; 
self.player = [[AVPlayer alloc] initWithURL:url]; 
} 

- (IBAction)play:(id)sender { 

[self.player play]; 
} 

У меня довольно много исследований в сети, и я думаю, что это должен быть правильный способ воспроизведения аудио в фоновом режиме. Однако это просто не получается. Я понятия не имею, где это происходит. Пожалуйста помоги. Благодарю.AvAudioSession не будет работать в iOS7?

+0

Вы уверены, что http: // localhost доступен? Вы используете http-сервер? Вы настроили и начали правильно? –

ответ

0

Посмотреть UIBackgroundModes. Вам нужно сообщить системе, что ваше приложение будет воспроизводить звук в фоновом режиме.

+0

Как? Вы имеете в виду добавить «App play audio» в «требуемые фоновые режимы» в этом plist? – Newbie

3
[[AVAudioSession sharedInstance] setActive:NO error:nil]; 
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback withOptions:AVAudioSessionCategoryOptionMixWithOthers error:nil]; 
[[AVAudioSession sharedInstance] setActive: YES error: nil]; 

если вы хотите воспроизводить звук, когда приложение работает в фоновом режиме, вы должны использовать категории воспроизведение вместо playAndRecord. Кроме того, вы должны проверить аудио и AirPlay в project-> target-> Capabilities-> backgroundMode

-1
#define STREAM @"http://" 

Я считаю, что HTTP не прямо в #define. Попробуйте дать это как

#define STREAM (@"file://")