2010-09-10 30 views
6

Làm cách nào tôi có thể đặt định hướng chính xác của MPMediaPickerController?MPMediaPickerĐịnh hướng điều khiển trên iPad

Tôi đã trả về YES in shouldAutorotateToInterfaceOrientation, nhưng tôi có khung xấu cho Landscape (nếu hiển thị MPMediaPickerController trong Portrait trước tiên và ngược lại).

Tôi đã xoay thiết bị của mình một cách hỗn loạn và đôi khi khung được đặt để tự sửa lỗi! Tôi đã tìm phương pháp để đặt khung bằng cách xoay - cần xoay 180 độ. Ví dụ: nếu bạn có khung hình tốt trong Chân dung, khi bạn xoay sang Chế độ ngang - bạn có khung hình xấu (từ Portatait), nhưng nếu bạn xoay sang cảnh khác (đến 180 độ), thì đặt khung thành Cảnh quan ... Tại sao ?

Làm thế nào tôi có thể đặt khung sau khi xoay đúng luôn?

regards,

Trả lời

-1

đây là một số mẫu mã bạn có thể thử nó một, sau khi quay bạn phải thiết lập xem phương tiện truyền thông palyer ở trung tâm của self.view, ở đây một số mẫu mã ... bạn phải thêm MediaPlayer Khung lúc đầu ....

NSString* moviePath = [[NSBundle mainBundle] pathForResource:@"PATRON_LOGO_3" ofType:@"mp4"]; 
NSURL* movieURL = [NSURL fileURLWithPath:moviePath]; 
MPMoviePlayerController *playerCtrl = [[MPMoviePlayerController alloc]initWithContentURL:movieURL]; 
playerCtrl.scalingMode = MPMovieScalingModeFill; 
playerCtrl.controlStyle = MPMovieControlStyleNone; 
[playerCtrl.view setCenter:CGPointMake(240, 160)]; 
[playerCtrl.view setTransform:CGAffineTransformMakeRotation(M_PI/2)]; 
playerCtrl.view.frame = CGRectMake(0, 0, 320, 480); 
[self.view addSubview:playerCtrl.view]; 
[playerCtrl play]; 

tôi nghĩ rằng nó hoạt động tốt, điều này là dành cho chế độ phong cảnh cho bức chân dung chúng ta phải thiết lập khung theo khung chân dung như ..

playerCtrl.view.frame = CGRectMake (0, 0, 480, 320);

sau đó chúng tôi phải đặt ở giữa chế độ xem.

+0

Điều này không liên quan đến câu hỏi. Câu hỏi yêu cầu MPMediaPickerController, không phải MPMoviePlayerController. Chúng là 2 thứ khác nhau. Và MPMediaPickerController không có thuộc tính biến đổi. – GeneCode

+0

@Rocotilos Bộ chọn có thể không, nhưng chế độ xem bộ chọn, ví dụ: MPMediaPickerController.view.chuyển đổi –

+0

Yup Tôi hiểu phần "xem". Cảm ơn bạn đã chỉ ra điều đó. – GeneCode

2

Không chắc cho dù bạn đang quan tâm đến các giải pháp hay không, kể từ khi bạn yêu cầu này trong năm 2010. Dù sao, sau khi một số tìm kiếm ở đây là những gì tôi tìm thấy:

  1. MPMediaPickerController không hỗ trợ LANDSCAPE ĐỊNH HƯỚNG.

  2. Để làm cho MPMediaPicker xuất hiện độc đáo theo hướng ngang, chúng tôi có thể sử dụng PopOverController. Về cơ bản, chúng tôi tạo một cửa sổ bật lên và chèn bộ chọn vào đó. PopOverController, khi được hiển thị đúng từ rootViewController, sẽ thực sự theo hướng của thiết bị.

Đây là mã thô. Nó hoạt động, nhưng cần một số dọn dẹp. Có lẽ tốt nhất bạn kiểm tra xem cửa sổ bật lên là không hoặc không, nếu không nó sẽ chỉ xếp chồng lên nhau mỗi khi người dùng chạm vào nút.

- (IBAction)showMediaPicker:(id)sender 
{ 

    MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny]; 

    mediaPicker.delegate = self; 
    mediaPicker.allowsPickingMultipleItems = YES; 
    mediaPicker.prompt = @"Select musics..."; 


    UIPopoverController *colorPickerPopover = [[[UIPopoverController alloc] 
            initWithContentViewController:mediaPicker] retain];    
    [colorPickerPopover presentPopoverFromBarButtonItem:sender 
            permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];  

} 

Một lưu ý nhỏ hơn: IBAction này được gắn với nút Thanh công cụ.

0

Tôi chỉ đơn giản là đẩy nó vào điều khiển chuyển hướng của tôi:

MPMediaPickerController *mediaPicker = [[MPMediaPickerController alloc] initWithMediaTypes: MPMediaTypeAny]; 

mediaPicker.delegate = self; 
mediaPicker.allowsPickingMultipleItems = NO; 
mediaPicker.prompt = @"Select songs..."; 

[[self navigationController] pushViewController:mediaPicker animated:YES]; 

Cấp này chỉ hoạt động trong bối cảnh của một bộ điều khiển chuyển hướng, nhưng nó hoạt động và là đơn giản!

Các vấn đề liên quan