如何在iOS应用程序中播放m3uaudiostream

我正在尝试使用Xcode 4.5.2创buildiOS / iPhone广播应用程序。

我想播放@“http://xx.xxxxxxx.com/8111/radio.m3u”播放,暂停,音量控制,并能够在后台function/多任务处理上播放。

AVFoundation ,我已经添加了AVFoundationMediaplayerAudioToolBox框架。 我添加了play,暂停和滑块对象到xib。

 ViewController.h @interface ViewController : UIViewController @property (strong,nonatomic) MPMoviePlayerController *myPlayer; @property (weak, nonatomic) IBOutlet UISlider *myslider; - (IBAction)playButtonPressed; - (IBAction)myslider:(id)sender; @end ViewController.m #import "ViewController.h" #import <MediaPlayer/MediaPlayer.h> @interface ViewController () { UISlider *volumeSlider; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; UIBackgroundTaskIdentifier newTaskId = UIBackgroundTaskInvalid; newTaskId = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:NULL]; } - (IBAction)playButtonPressed; { NSString *urlAddress = @"http://xxxxxxx.com/8111/listen.m3u"; NSURL *url = [NSURL URLWithString:urlAddress]; MPMoviePlayerController *player = [[MPMoviePlayerController alloc]initWithContentURL:url]; player.movieSourceType = MPMovieSourceTypeStreaming; [player prepareToPlay]; self.myPlayer = player; [self.view addSubview:self.myPlayer.view]; [self.myPlayer play]; } - (IBAction)stopButtonPressed; { [self.myPlayer stop]; } - (IBAction)myslider:(id)sender { MPVolumeView *volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(10, 10, 200, 40)]; [volumeSlider addSubview:volumeView]; [volumeView sizeToFit]; } 

有两种方法来实现这一点。

  1. 你可以在UIWebView中直接加载你的URL,它会正确的。
  2. 您也可以使用MPMoviePlayerController。

在您的ViewController中创build一个“MPMoviePlayerController * player”作为强大的对象。

所以你的代码如下所示:

 @interface ViewController () { UISlider *volumeSlider; MPMoviePlayerController *player; } @end - (IBAction)playButtonPressed; { NSString *urlAddress = @"http://xxxxxxx.com/8111/listen.m3u"; NSURL *url = [NSURL URLWithString:urlAddress]; if(nil != player) { player = nil; // Alternatively you can stop and restart with the different stream. } player = [[MPMoviePlayerController alloc]initWithContentURL:url]; player.movieSourceType = MPMovieSourceTypeStreaming; [player prepareToPlay]; self.myPlayer = player; [self.view addSubview:self.myPlayer.view]; [self.myPlayer play]; }