0

我想在两个单独的子视图中同时播放两部电影。他们都在访问不同的媒体。

这是在 ipad 上,在 xib 上有一个超级视图和两个 320x240 的小视图。

-(IBAction)playLeft:(id)sender{
if ([self.playerRight playbackState] == MPMoviePlaybackStatePlaying);
[self.playerRight stop];

[self.playerLeft play];
}

-(IBAction)playRight:(id)sender{
if ([self.playerLeft playbackState] == MPMoviePlaybackStatePlaying);
[self.playerLeft stop];

[self.playerRight play];
}



- (void)viewDidLoad {
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor viewFlipsideBackgroundColor];

self.playerLeft = [[MPMoviePlayerController alloc] init];
self.playerLeft.contentURL = [self movieURL];

NSLog(@"self.playerLeft %@", self.playerLeft);


self.playerRight = [[MPMoviePlayerController alloc] init];
self.playerRight.contentURL = [self movieURL2];

NSLog(@"self.playerRight %@", self.playerRight);



// START_HIGHLIGHT
self.playerLeft.view.frame = self.leftView.bounds;
self.playerLeft.view.autoresizingMask = 
UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;

self.playerRight.view.frame = self.rightView.bounds;
self.playerRight.view.autoresizingMask = 
UIViewAutoresizingFlexibleWidth |
UIViewAutoresizingFlexibleHeight;

[self.rightView addSubview:playerRight.view];
[self.leftView addSubview:playerLeft.view];


//[self.playerRight play];

//[self.playerLeft play];


//[self clickedOpenMovie:nil];

}

-(NSURL *)movieURL
{
NSBundle *bundle = [NSBundle mainBundle];
NSString *moviePath = 
[bundle 
      pathForResource:@"720p5994-prores-hq_iPhone_320x240 two" 
 ofType:@"m4v"];
//NSString *moviePath = [NSString stringWithFormat:@"http://localhost:1935/live/aStream/playlist.m3u8"];

if (moviePath) {
return [NSURL fileURLWithPath:moviePath];
//return [NSURL URLWithString:moviePath];

} else {
return nil;
}
}

-(NSURL *)movieURL2
{
NSBundle *bundle = [NSBundle mainBundle];
NSString *moviePath = 
[bundle 
pathForResource:@"720p5994-prores-hq_iPhone_320x240" 
ofType:@"m4v"];
if (moviePath) {
return [NSURL fileURLWithPath:moviePath];
} else {
return nil;
}
}
4

1 回答 1

1

所以问题是,在后台某个地方 MPMoviePlayerController 响应通知并在另一个 MPMoviewPlayerController 广播它将开始时自行关闭。因此不能同时播放多个 MPMoviePlayerController。

您可以通过打印 MPMoviePlayerPlaybackStateDidChangeNotification 来查看

于 2010-04-26T18:05:57.940 回答