2010-10-18 16 views
24

iOS 3.2'den bu yana MPMoviePlayerController sınıfı, görüntü hiyerarşisinde bir filmin gömülmesini sağlar. Şimdi bu sorunla karşılaşıyorum: MPMoviePlayerController örneğini yerleştirerek portre görünümümü oluşturuyorum. Kullanıcı "tam ekran" düğmesine dokunduğunda bu görünüm tam ekran moduna girer ancak görünüm dikey olarak kalır. Kullanıcı cihazı döndürdüğünde, tam ekran film görünümü, uygulamam yatay arayüz yönelimini yasakladığı için otomatik olarak döndürülemiyor. Film oynatıcısının tam ekran görüntüsünün otomatik olarak dönmesine izin vermek için, görüntü denetleyicimi değiştirmem gerekiyordu. Otomatik Olarak DöndürmeYazdırım yöntemi: Manzara için YES döndürme yöntemi - ve yalnızca - film oynatıcı tam ekran modunda. Bu, mükemmel çalışır: kullanıcı tam ekrana girdikten sonra manzaraya döndüğünde müzikçalar otomatik olarak yatay olarak çevrilir ve ekranın tamamını doldurur. manzara kalırken ben tam ekran görünümünde "Done" düğmesine dokunduğunuzda MPMoviePlayerController yeniden yönlendirmeyi portre ve dikey olarak (iOS 4.1)

// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    // Return YES for supported orientations 
    //return (interfaceOrientation == UIInterfaceOrientationPortrait); 
    if(UIInterfaceOrientationIsPortrait(interfaceOrientation)) { 
     return(YES); 
    } 

    if(UIInterfaceOrientationIsLandscape(interfaceOrientation)) { 
     return([movieController isFullscreen]); 
    } 

return(NO); 
} 

Şimdi sorunu da ortaya çıkıyor. Tam ekran kapanıyor ve sonra gördüğüm şey orijinal görünümüm otomatik hale getirildi: ama bu otomatik dönüşü istemiyorum.

[[UIDevice currentDevice] setOrientation:UIDeviceOrientationPortrait] 

Bu çalışmalar:

kısmi, ama kabul edilebilir çözelti, arayüz yatay kuvvet yeniden yönde döndürüldüğünde ise kayıt dışı ve özel özelliği kullanarak, "MPMoviePlayerDidExitFullscreenNotification" dinlemek ve etmektir Ancak bu yöntemin kullanımı yasak olduğu için kabul edilemez.

[[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationPortrait] kullanarak yönlendirmeyi zorlamaya çalıştım ancak bir Tab Çubuğunda olduğum için bu işe yaramıyor (UITabBar, Yatay boyutta kalır). Yardımlarınız

+0

Bir çözüm buldunuz mu? Aynı durumdayım ve bir çözüm bulamıyorum. – klefevre

+0

Yönlendirmeyi yönetmek için iOS6'da tanıtılan yeni yolla ilgili teoride, bu sorun her bir denetleyici yönlendirmesini doğrudan ayarlayarak giderilebilir. Bu, her görünüm denetleyicisine yönlendirme izinleri için soran yeni yöntemler kullanılarak yapılabilir. – viggio24

cevap

2

Sen MPMovieplayer için ayrı görünümü denetleyicisi kullanabilirsiniz için

teşekkürler. Orijinal görünümü kumandam

(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

geçersiz kılmak gerekmez. yöntemi varsayılan olarak YES değerini döndüreceğinden, MPMoviePlayerViewController kullanıyorsanız, her şey sizin için daha iyi ayarlanmış demektir. Bir subview olarak kullanmak veya
presentMoviePlayerViewControllerAnimated:

İlgili konular