Вопрос

Мне нужно иметь возможность воспроизвести более одного видео в приложении.

К сожалению, во второй раз, когда я нажимаю на игру, видео кажется мигающим.

Я использую только этот код для воспроизведения.

Nsurl *url = [[[nsurl alloc] initfileurlwithpath: [[nsbundle mainbundle] pathforresource:@"movie" oftype:@"m4v"]] autorelease];

Mpmovieplayercontroller *mp = [[mpmovieplayercontroller alloc] initwithcontenturl: url];

mp.moviecontrolmode = mpmoviecontrolmodedefault;

MP Play];

MoviePlayer = MP;

MP Release];

Кто -нибудь может сказать мне, где может быть проблема? Заранее спасибо!

Обновление 1: Кажется, что яблоко MoviePlayer Пример имеет ту же проблему.

Это было полезно?

Решение

Вы также можете сделать это, установив начальное время воспроизведения на -1.0, прежде чем вызовать функцию воспроизведения

mp.initialPlaybackTime = -1.0;

Поместите этот код до того, как ваш метод воспроизведения будет вызван.

Другие советы

У меня была эта проблема, и я решил ее, используя систему уведомлений для выполнения обратного вызова после того, как MpmoviePlayerController заканчивает игру и освобождает там объект игрока.

Добавьте уведомление, прежде чем играть в фильм:

NSURL *url = [[[NSURL alloc]initFileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Movie" ofType:@"m4v"]] autorelease];

MPMoviePlayerController *mp = [[MPMoviePlayerController alloc]initWithContentURL:url];

mp.movieControlMode = MPMovieControlModeDefault;

//***Add this line***
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(myMovieFinished:) name:MPMoviePlayerPlaybackDidFinishNotification object:mp];

[mp play];

Затем добавьте метод обратного вызова,

-(void)myMovieFinished:(NSNotification*)aNotification
{
    MPMoviePlayerController *moviePlayer = [aNotification object];
    [[NSNotificationCenter defaultCenter] removeObserver:self name:MPMoviePlayerDidFinishNotification object:moviePlayer];
    [moviePlayer release];
}

Это швы, что единственное решение - это ... сделать приложение для 3.1

Я также нахожу запуск на OS 3.1 или более поздней версии Simulator можно хорошо воспроизводить. Это не кажется мигающим. Но когда я добавляю

initialPlaybackTime = -1.0

Это также хорошо сыграет на OS 3.0.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top