2012-09-23 152 views
7

MPMoviePlayerController停止幾秒鐘後播放後停止播放, 這是我使用的代碼:的MPMoviePlayerController幾秒鐘

NSString *urlAddress = @"http://67.159.28.74:8730"; 
NSURL *url = [NSURL URLWithString:urlAddress]; 

MPMoviePlayerController *player = [[MPMoviePlayerController alloc]initWithContentURL:url]; 
player.movieSourceType = MPMovieSourceTypeStreaming; 

player.view.hidden = NO; 
[self.view addSubview:player.view]; 
[player prepareToPlay]; 

if(player){ 
    [player play]; 
} 

錯誤即時得到控制檯是:

2012-09-23 18:07:56.618 Reader[696:c07] [MPAVController] Autoplay: Disabling autoplay for pause 

2012-09-23 18:07:56.619 Reader[696:c07] [MPAVController] Autoplay: Disabling autoplay 

2012-09-23 18:07:56.638 Reader[696:c07] [MPAVController] Autoplay: Disabling autoplay for pause 

2012-09-23 18:07:56.638 Reader[696:c07] [MPAVController] Autoplay: Disabling autoplay 

2012-09-23 18:07:56.643 Reader[696:c07] [MPAVController] Autoplay: Enabling autoplay 

2012-09-23 18:07:56.645 Reader[696:c07] [MPAVController] Autoplay: Likely to keep up or full buffer: 0 

2012-09-23 18:07:56.646 Reader[696:c07] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up. 

2012-09-23 18:07:56.648 Reader[696:c07] [MPAVController] Autoplay: Likely to keep up or full buffer: 0 

2012-09-23 18:07:56.648 Reader[696:c07] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up. 

2012-09-23 18:07:56.650 Reader[696:c07] [MPAVController] Autoplay: Enabling autoplay 

2012-09-23 18:07:56.652 Reader[696:c07] [MPCloudAssetDownloadController] Prioritization requested for media item ID: 0 

2012-09-23 18:07:58.746 Reader[696:c07] [MPAVController] Autoplay: Likely to keep up or full buffer: 0 

2012-09-23 18:07:58.746 Reader[696:c07] [MPAVController] Autoplay: Skipping autoplay, not enough buffered to keep up. 

2012-09-23 18:07:58.747 Reader[696:c07] [MPAVController] Autoplay: _streamLikelyToKeepUp: 0 -> 1 

2012-09-23 18:07:58.748 Reader[696:c07] [MPAVController] Autoplay: Likely to keep up or full buffer: 1 

2012-09-23 18:07:58.748 Reader[696:c07] [MPAVController] Autoplay: Enabling autoplay` 
+0

喜,你正在使用哪個iOS? – AsifHabib

回答

1

你可以嘗試在你實例化你的播放器後做到這一點: [player prepareToPlay]

更多的信息:iOS 6 streaming player com.apple.coremedia.networkbuffering bug

+0

不知道我在哪裏設置廣告[player prepareToPlay],我已經在我的代碼中找到了。我應該在其他地方移動該方法還是添加一個額外的,不確定如何去做那 – Luna

+0

我在[玩家播放]後添加了[player prepareToPlay]方法,幾秒鐘後它仍然關閉 – Luna

+0

仍然沒有運氣,我看到有類似問題的其他帖子,但問題沒有解決。 – Luna

9

解決它:

我把我的MPMoviePlayerController到屬性:

//添加在頭

@property (strong,nonatomic) MPMoviePlayerController *myPlayer; 

//添加在.m文件

- (IBAction)playStream:(id)sender { 
    NSString *urlAddress = @"http://67.159.28.74:8730"; 
    NSURL *url = [NSURL URLWithString:urlAddress]; 

    MPMoviePlayerController *player = [[MPMoviePlayerController alloc]initWithContentURL:url]; 
    [player prepareToPlay]; 
    //Remember you have to add MediaPlayer.framework to your project 
    /*[[NSNotificationCenter defaultCenter] addObserver:self 
             selector:@selector(moviePlayBackDidFinish:) 
              name:MPMoviePlayerPlaybackDidFinishNotification 
              object:player];*/ 

    player.movieSourceType = MPMovieSourceTypeStreaming; 



    player.view.hidden = YES; 

    self.myPlayer = player; 

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


    if(player){ 
     [self.myPlayer play]; 
    } 
} 
1

試試這個很好用我在ios6

NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"ddd" ofType:@"mp4"]; 
NSLog(@"%@",resourcePath); 
NSURL *url = [NSURL fileURLWithPath:resourcePath]; 
NSLog(@"%@",url); 
MPMoviePlayerViewController *moviePlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:url]; 
moviePlayer.view.frame = self.view.frame; 
moviePlayer.moviePlayer.shouldAutoplay=YES; 
moviePlayer.moviePlayer.controlStyle = MPMovieControlStyleNone; 
[moviePlayer.moviePlayer setFullscreen:YES animated:YES]; 
[self.view addSubview:moviePlayer.view]; 
[moviePlayer.moviePlayer play]; 
0

這是一個有趣的代碼行,你錯過了。

根據蘋果的文檔

「當你添加一個電影播放器​​的看法到應用的視圖層次,一定要尺寸框架正確,如下所示:http://tinyurl.com/9wgv9wc

MPMoviePlayerController *player = 

    [[MPMoviePlayerController alloc] initWithContentURL: myURL]; 

[player prepareToPlay]; 

[player.view setFrame: myView.bounds]; // player's frame must match parent's 

[myView addSubview: player.view]; 

// ... 

[player play]; 

http://tinyurl.com/aeh9f84

0

解決方法是播放器必須是視圖控制器的實例變量或屬性 ie我們必須使用MPMoviePlayerController的實例

@property(nonatomic,strong)MPMoviePlayerController * myMovieController;

8

你必須設置一個類變量是這樣的:

@property (nonatomic, retain) MPMoviePlayerController *moviePlayer; 

我的代碼如下所示:

NSURL *theUrl = [[NSBundle mainBundle] URLForResource:@"test" withExtension:@"mp4"]; 
moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:theUrl]; 
[moviePlayer prepareToPlay]; 
[moviePlayer.view setFrame: self.view.bounds]; 
moviePlayer.movieSourceType = MPMovieSourceTypeFile; 
[self.view addSubview: moviePlayer.view]; 
[moviePlayer play]; 

這工作適合我!

2

xCode 4.6.1它工作正常。

但我有xCode 5的這個問題!

但是這種解決方案是非常有幫助的:

「的解決方案是,玩家必須是一個實例變量或屬性的視圖控制器。即我們必須使用的MPMoviePlayerController

@屬性(非原子,強)的MPMoviePlayerController * myMovieController的實例;」

感謝筆者非常

這是我的代碼:

UIGraphicsBeginImageContext(CGSizeMake(1,1)); 

NSString *path = [[NSBundle mainBundle] pathForResource:@"video" ofType:@"mp4"]; 
NSURL *videoURL = [NSURL fileURLWithPath:path]; 
self.moviePlayerView = [[MPMoviePlayerController alloc] initWithContentURL:videoURL]; 
[self.moviePlayerView prepareToPlay]; 
[self.moviePlayerView.view setFrame:CGRectMake(0, 0, 320, self.view.frame.size.height/2)]; 
self.moviePlayerView.view.backgroundColor = [UIColor clearColor]; 
[self.moviePlayerView setContentURL:videoURL]; 

self.moviePlayerView.movieSourceType = MPMovieSourceTypeFile; 
self.moviePlayerView.controlStyle = MPMovieControlStyleDefault; 
[self.view addSubview:self.moviePlayerView.view]; 
self.moviePlayerView.shouldAutoplay = NO; 
[self.moviePlayerView play]; 

UIGraphicsEndImageContext();