سؤال

أحتاج إلى إمكانية تشغيل أكثر من فيديو واحد في التطبيق.

لسوء الحظ، والمرة الثانية أنا اضغط على اللعب، ويظهر الفيديو وامض.

يمكنني استخدام هذا الرمز فقط للعب الفيديو

nsurl * url = [[nsurl alloc] initfileurlwithpath: [[NSBundle الرئيسية] PathForresource: @ "فيلم" oftype: @ "M4V"]] Autorelease]؛

MPMOVIEPLAYERCONTROLLER * MP = [[mpmovieplayercontroller alloc] initwithcontenturl: URL]؛

mp.moviecontrolmode = MPMOVIECONTROLMODEDEFAULT؛

النائب اللعب]؛

MoviePlayer = النائب؛

النائب الإصدار]؛

هل يمكن لأي شخص أن يخبرني أين يمكن أن تكون المشكلة؟ شكرا لك مقدما!

التحديث 1: يبدو أن التفاح السينماي مثال له نفس المشكلة.

هل كانت مفيدة؟

المحلول

يمكنك أيضا القيام بذلك عن طريق تعيين وقت التشغيل الأولي إلى -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

أجد أيضا تشغيل على نظام التشغيل 3.1 أو إصدار أحدث من Simulator يمكن تشغيله جيدا. لن يظهر وامض. ولكن عندما أضيف

initialPlaybackTime = -1.0

سوف تلعب أيضا جيدا على نظام التشغيل 3.0.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top