Прямая трансляция с использованием потокового сервера darwing - PullRequest
3 голосов
/ 24 октября 2011

Я установил на моем Mac потоковый сервер Darwin.Теперь мне нужно потоковое видео на моем iPhone в режиме реального времени

, но проблема в том, что MPMoviePlayerPlaybackDidFinishNotification вызывается еще до того, как видео воспроизводятся

Я проверил сервер и работает, и у меня естьуспешно открыл URL в сафари и быстро.но видео просто не будут воспроизводиться на симуляторе, код, который я написал, -

NSURL *movieURL=[NSURL fileURLWithPath:@"rtsp://10.41.37.160/sample_300kbit.mov"];
// NSURL *movieURL = [NSURL URLWithString:@"rtsp://10.41.37.160/sample_300kbit.mp4"];
if (movieURL != nil) 
{
    moviePlayer = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
    [moviePlayer.view setFrame: CGRectMake(0, 0, 320, 400)];      

    [moviePlayer setControlStyle:MPMovieControlStyleFullscreen];
    [moviePlayer setMovieSourceType:MPMovieSourceTypeStreaming];
    [self.view addSubview:moviePlayer.view];
    moviePlayer.fullscreen=YES;
   // moviePlayer.initialPlaybackTime = -1.0;

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(moviePlayBackDidFinish:) name:MPMoviePlayerScalingModeDidChangeNotification object:moviePlayer];
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(endPlay:) name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
    moviePlayer.scalingMode = MPMovieScalingModeAspectFit; 
    moviePlayer.shouldAutoplay=YES;
    [moviePlayer play];
    //[self reloadInputViews];
}

-(void)moviePlayBackDidFinish: (NSNotification*)notification
{  


self.navigationItem.hidesBackButton = FALSE;
moviePlayer = [notification object];
[moviePlayer play];
}

-(void)endPlay: (NSNotification*)notification
{ 

NSLog(@"end Playing");
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerScalingModeDidChangeNotification object:moviePlayer];
[[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerPlaybackDidFinishNotification object:moviePlayer];
[moviePlayer stop];
[moviePlayer release];
}

1 Ответ

0 голосов
/ 25 октября 2011

Я не могу найти документацию для резервного копирования, но вы не можете воспроизводить потоки RTSP на iOS.

Вы должны использовать HTTP (либо напрямую к файлу фильма, либо с помощью прямой трансляции HTTP). Я не думаю, что Darwin Streaming Server может работать с HLS, но вы можете показывать обычный фильм с помощью обычного веб-сервера.

Обратите внимание, что кодеки, которые может использовать видео, несколько ограничены ...

...