Я делаю mpmovieplayerviewcontroller и загружаю в него фильм (из потока). Теперь у меня есть вызов метода setContentURL, который меняет URL, и он работает. Когда приложение запускается впервые, оно показывает вид с помощью кнопки, после нажатия кнопки открывает проигрыватель фильмов и загружает фильм. Но когда я вызываю код, где setContentURL player закрывает его сам, сначала возвращаюсь к первому представлению, где я должен снова нажать кнопку воспроизведения, чтобы снова открыть проигрыватель (чтобы он запоминал и загружал новый URL). Как запретить игроку не закрывать себя при переключении URL? Это должно быть небольшая проблема, пожалуйста, помогите :)
Это код при нажатии кнопки воспроизведения (первый просмотр)
-(void)initializeMovieFromStream:(NSString *)var
{
if(player != nil)
{
NSString *title = [[NSString alloc] initWithFormat:@"%@%@%@", @"http://"];
NSURL *nurl = [NSURL URLWithString:title];
NSLog(@"Switching channel...");
[player.moviePlayer setContentURL:nurl];
isMoviePaused = NO;
}
else
{
NSString *title = [[NSString alloc] initWithFormat:@"%@%@%@", @"http://"];
NSURL *nurl = [NSURL URLWithString:title];
player = [[MPMoviePlayerViewController alloc] initWithContentURL:nurl];
[player.moviePlayer.view.window setUserInteractionEnabled:YES];
player.moviePlayer.movieSourceType = MPMovieSourceTypeStreaming;
player.moviePlayer.controlStyle = MPMovieControlStyleNone;
}
[[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(movieFinishedPlaying:)
name:MPMoviePlayerPlaybackDidFinishNotification
object:[player moviePlayer]];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(nowPlayingMovieDidChange:)
name:MPMoviePlayerNowPlayingMovieDidChangeNotification
object:nil];
[self presentModalViewController:player animated:YES];
//[self presentMoviePlayerViewControllerAnimated:player];
UIView *mv = player.view;
//[mv setFrame:CGRectMake(0, 0, 320, 480)];
[mv addSubview:myOverlayChannelPicker];
[mv bringSubviewToFront:myOverlayChannelPicker];
// register this class to observe TestNotification that comes from OverlayChannelPicker
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(receiveTestNotification:)
name:@"TestNotification"
object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(pauseStreamNotificationHandler:)
name:@"notiPauseStream"
object:nil];
}
-(void) movieFinishedPlaying: (NSNotification *)note
{
[[NSNotificationCenter defaultCenter]
removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification
object:[player moviePlayer]];
//[player release];
}
Когда нужно переключить URL, я использую этот обработчик нитирования
- (void) receiveTestNotification:(NSNotification *) notification
{
NSString *stringFromNote = (NSString *)[notification object];
[switchableChannel setString:stringFromNote];
[self initializeMovieFromStream:stringFromNote];
}
Решено, я просто изменяю свойство анимации на NO.