2009-07-15 26 views
10

Khi sử dụng MPMoviePlayerController, nút phát được bao quanh với các nút "Tiếp theo" và "Trước".Nút Tiếp theo/Trước trên iPhone MPMoviePlayerController

Làm cách nào để nhận thông báo khi được nhấp? có cách nào để nạp MPMoviePlayerController với một danh sách (mảng) nội dung không?

+0

Tôi tìm thấy một cách, xem câu hỏi và câu trả lời của tôi. http://stackoverflow.com/questions/3593683/how-can-i-know-users-click-fast-forward-and-fast-rewind-buttons-on-the-playback-c/3598383#3598383 – alones

Trả lời

6

Nathan chính xác về việc cần triển khai giao diện người dùng của riêng bạn cho người chơi nếu bạn muốn thông báo nút. Bạn có thể nhận thông báo từ trình phát về trạng thái phát lại.

từ ví dụ AddMusic, nơi tự là bộ điều khiển hoặc mô hình có chứa các thể hiện của MPMusicPlayerController:

- (void) registerForMediaPlayerNotifications { 

    NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter]; 

    [notificationCenter addObserver: self 
          selector: @selector (handle_NowPlayingItemChanged:) 
           name: MPMusicPlayerControllerNowPlayingItemDidChangeNotification 
          object: musicPlayer]; 

    [notificationCenter addObserver: self 
          selector: @selector (handle_PlaybackStateChanged:) 
           name: MPMusicPlayerControllerPlaybackStateDidChangeNotification 
          object: musicPlayer]; 

    /* 
    // This sample doesn't use libray change notifications; this code is here to show how 
    //  it's done if you need it. 
    [notificationCenter addObserver: self 
    selector: @selector (handle_iPodLibraryChanged:) 
    name: MPMediaLibraryDidChangeNotification 
    object: musicPlayer]; 

    [[MPMediaLibrary defaultMediaLibrary] beginGeneratingLibraryChangeNotifications]; 
    */ 

    [musicPlayer beginGeneratingPlaybackNotifications]; 
}
0

Tôi không nghĩ rằng bạn có nhiều quyền kiểm soát đối với MPMoviePlayerController. Nó là một thành phần tiêu chuẩn về cơ bản có thể bắt đầu và ngừng phát một bộ phim và không có gì khác.

+0

Tôi đoán bạn đúng rồi. Tuy nhiên, tại sao các điều khiển này vẫn có? Trên ứng dụng youTube - chúng chuyển sang video tiếp theo/trước. –

+0

Trên iPhone, chúng sẽ bắt đầu hoặc kết thúc phim hiện tại. Chúng không phải là nút kế tiếp/trước. –

+0

Điều đó không đúng. Khi bạn thực hiện am MPMoviePlayerController - chúng chỉ cần thoát khỏi trình phát theo cách tương tự "stop" sẽ thực hiện. –

4

Không có thông báo nào được tạo khi người dùng nhấn nút tiếp theo/trước đó (bạn nên gửi lỗi về điều đó), vì vậy cách duy nhất để giải quyết vấn đề này mà không có bất kỳ thu thập thông tin xem nào không được chấp thuận là triển khai chế độ xem lớp phủ video của riêng bạn:

MPMoviePlayerController* moviePlayer = [[MPMoviePlayerController alloc] 
    initWithContentURL:someUrl]; 
moviePlayer.movieControlMode = MPMovieControlModeHidden; 
[moviePlayer play]; 

NSArray* windows = [[UIApplication sharedApplication] windows]; 
if ([windows count] > 1) { 
    UIWindow *moviePlayerWindow = [[UIApplication sharedApplication] keyWindow]; 
    [moviePlayerWindow addSubview:yourCustomOverlayView]; 
} 

Không lý tưởng, nhưng điều khiển tiêu chuẩn khá dễ thực hiện lại.

+0

Mã này không xóa lớp phủ hiện có. ý của bạn là thêm một nút rõ ràng vào chúng? –

+0

@ yn2: Tôi đã cập nhật câu trả lời của mình để giao diện người dùng lớp phủ mặc định bị ẩn. –

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