2012-01-14 112 views
16

我試圖通過按下按鈕從iPhone上的互聯網播放視頻流。 我使用了許多代碼示例,但沒有任何工作。使用此代碼,它將打開一個黑色視圖,其中沒有任何視頻流或控件。 (流本身的工作原理。)如何在iOS中使用MPMoviePlayerController播放視頻流

NSURL *url = [NSURL URLWithString:@"http://MyStreamURL.com"]; 
MPMoviePlayerController *moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:url]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:moviePlayer]; 

moviePlayer.controlStyle = MPMovieControlStyleDefault; 
moviePlayer.shouldAutoplay = YES; 
[self.view addSubview:moviePlayer.view]; 
[moviePlayer setFullscreen:YES animated:YES]; 

回答

27

而不是創造一個MPMoviePlayerController,並補充說,以你的觀點,它可能是簡單的創建一個MPMoviePlayerViewController,並提交視圖控制器模態(因爲你想顯示你的視頻全屏幕無論如何)。然後,MPMoviePlayerViewController可以管理您的視頻演示文稿。

MPMoviePlayerViewController *mpvc = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
            selector:@selector(moviePlaybackDidFinish:) 
             name:MPMoviePlayerPlaybackDidFinishNotification 
             object:nil];  

mpvc.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming; 

[self presentMoviePlayerViewControllerAnimated:mpvc]; 
[mpvc release]; 

在您的moviePlayBackDidFinish委託方法中,您可以關閉模​​型視圖控制器。

+0

非常感謝!我完美的工作。 – derFalke 2012-01-14 20:15:26

+2

雖然小修正;你應該使用'presentMoviePlayerViewControllerAnimated'而不是'presentModalViewController'。這將導致用戶期望從電影播放器​​獲得適當的動畫效果。 – Till 2012-01-15 17:01:49

+0

謝謝@Till,我不知道。我編輯了我的代碼示例以反映此更改。 – jonkroll 2012-01-16 02:59:55

2

需要提及的片源類型的流

moviePlayer.movieSourceType = MPMovieSourceTypeStreaming; 
1

中添加鏈接庫部分

AVFoundation框架的工作在你的.h文件中添加

#import <MediaPlayer/MediaPlayer.h> 
@interface video_liveViewController : UIViewController<MPMediaPickerControllerDelegate,MPMediaPlayback> 

在您.m文件

NSURL *movieURL = [NSURL URLWithString:@"http://172.31.17.252:1935/live/myStream/playlist.m3u8"]; 
movieController = [[MPMoviePlayerViewController alloc] initWithContentURL:movieURL]; 
[self presentMoviePlayerViewControllerAnimated:movieController]; 
[movieController.moviePlayer play]; 
-1

只需將「MPMovieSourceTypeStreaming」添加到「moviesourcetype

相關問題