у меня есть два контроллера mpmovieplayer и два отдельных подпредставления, которые они используют ... за исключением того, что одновременно будет воспроизводиться только одно видео - PullRequest
0 голосов
/ 18 апреля 2010

Мне бы хотелось, чтобы оба фильма воспроизводились одновременно в двух отдельных вложенных видах. Они оба имеют доступ к различным медиа.

это на ipad с суперпредставлением и двумя маленькими видами 320x240 прямо на xib

-(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;
}
}

1 Ответ

1 голос
/ 26 апреля 2010

, поэтому проблема в том, что где-то в фоновом режиме MPMoviePlayerController отвечает на уведомления и отключается, если другой MPMoviewPlayerController сообщает, что он собирается запуститься. Таким образом, нельзя одновременно воспроизводить несколько MPMoviePlayerControllers.

Вы можете увидеть это, распечатав MPMoviePlayerPlaybackStateDidChangeNotification

...