سؤال

يحرر: إذا صادفت هذا الأمر وترغب في معرفة كيف قمت بحله في النهاية ، فقد تخليت عن هذا الرمز أدناه في النهاية وفعلت ذلك:

-(void)playMovieAtURL:(NSURL*)theURL{
    mediaPlayer = [[MPMoviePlayerViewController alloc] initWithContentURL:theURL];

    [self presentMoviePlayerViewControllerAnimated:mediaPlayer];
    mediaPlayer.view.backgroundColor = [UIColor blackColor];

}

المنشور الأصلي:

هذا هو الكود الخاص بي - لقد أخرجته من موقع Apple ، لذا لا ينبغي أن يكون مشكلة.

يتم تشغيله في uitableViewController على طريقة deSelectRowatIndexPath.

عند تحديد الصف ، يبدأ الفيديو في التشغيل - يخرج الصوت على الأقل - ولكن لا توجد صورة. أي فكرة لماذا يحدث هذا؟ لقد أدرجت الإطار.

الفيديو هو واحد خارج موقع Apple (فيديو FaceTime) الذي استخدمته للاختبار.

 -(void)playMovieAtURL:(NSURL*)theURL{



        MPMoviePlayerController* theMovie =

        [[MPMoviePlayerController alloc] initWithContentURL: theURL];



        theMovie.scalingMode = MPMovieScalingModeAspectFill;

        theMovie.controlStyle = MPMovieControlStyleNone;



        // Register for the playback finished notification

        [[NSNotificationCenter defaultCenter]

         addObserver: self

         selector: @selector(myMovieFinishedCallback:)

         name: MPMoviePlayerPlaybackDidFinishNotification

         object: theMovie];



        // Movie playback is asynchronous, so this method returns immediately.

        [theMovie play];

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

المحلول

تم تغيير سلوك mpmoviePlayerController في OS 3.2 - تحتاج إلى إضافة عرض مشغل الفيلم بشكل صريح إلى التسلسل الهرمي الخاص بك الآن - باستخدام شيء مثل:

[aView addSubview:moviePlayerController.view];
moviePlayerController.view.frame = aView.frame;

بدلاً من ذلك ، يمكنك استخدام mpmovieplayerviewController (جديد في 3.2) لإدارة العرض.

إذا كنت تستهدف أجهزة ما قبل وبعد 3.2 (على سبيل المثال IOS 3.1 و 4.0) ، فستحتاج إلى بعض التعليمات البرمجية الشرطية لتحديد نظام التشغيل الذي يعمل عليه الرمز والتعامل معه وفقًا لذلك. لقد استخدمت هذا في المشاريع السابقة:

if ([moviePlayerController respondsToSelector:@selector(setFullscreen:animated:)]) {
    // Running on OS 3.2 or above
    // Code to add to a view here...
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top