سؤال

يعرض تطبيق iPad الخاص بي فيلمًا ملءًا للفيلم باستخدام مناسب MPMoviePlayerViewController صف دراسي. أقدمها مثل هذا:

 [self.hostController presentMoviePlayerViewControllerAnimated:playerViewController];

وبعد ذلك ، عندما يتم إخطاره بأن اللعب يتم ، أرفضه على هذا النحو:

 [self.hostController dismissMoviePlayerViewControllerAnimated];

إنه يعمل بشكل جيد ، إلا عندما يدور المستخدم جهاز iPad أثناء تشغيل الأفلام:

1- iPad في الاتجاه العمودي. وجهة نظري عمودية. 2- يبدأ المستخدم الفيلم في الاتجاه العمودي. اللاعب عمودي. 3- يقوم المستخدم بتدوير iPad إلى الاتجاه الأفقي. 4- يتحول اللاعب إلى اتجاهه الأفقي. حتى الان جيدة جدا. 5- يتوقف الفيلم ، يتم رفض اللاعب ، ويعاد الظهور ، ويباد لا يزال أفقيًا ، لكن وجهة نظري بقيت في الاتجاه العمودي كانت في الخطوة 1. الآن تبدو جانبية.

بالطبع ، إذا قام المستخدم بتدوير جهاز iPad ، فقد عاد إلى طبيعته. وجهة نظري ثم تدور بشكل طبيعي مع تدوير iPad.

هل واجه أي شخص ذلك؟ حل سهل؟

شكرًا.

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

المحلول

لقد واجهت هذه المرات العديدة ويبدو أنه خطأ في التفاح (وأبلغت ذلك على هذا النحو).

الطريقة الوحيدة (التي وجدت) حول هذا هو الاستماع إلى UIDeviceOrientationDidChangeNotification و UIApplicationDidChangeStatusBarOrientationNotification إشعارات. استخدم الطابع الزمني النسبي على هذه الإخطارات ؛ إذا حدث كلاهما خلال ثانية من بعضهما البعض ، فيمكنك التأكد من أن تغيير شريط الحالة هو نتيجة لاتجاهات تبديل المستخدم وليس الوسائط SDK تغيير اتجاه شريط الحالة. بعد ذلك ، عند الانتهاء من الفيلم ، يمكنك إخبار وحدة التحكم في العرض الخاصة بك أنه ينبغي تدويرها إلى المناظر الطبيعية.

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