2013-02-12 40 views
6

Tôi muốn tạo một video Youtube trong ứng dụng của mình. Nhưng kỹ thuật thông thường là, chúng tôi nhúng video youtube vào UIWebView và khi người dùng nhấp vào, nó sẽ tự động khởi chạy trong MPMoviePlayerController. Nhưng điều này ra mắt ở chế độ toàn màn hình. Làm thế nào để chơi video youtube này trong một MPMoviePlayerController mà không cần đi đến toàn màn hình. Tôi muốn hiển thị điều này trong một nửa màn hình.Phát video trên Youtube trong UIWebView mà không cần toàn màn hình

Trả lời

5

Có một số cách để làm điều đó.

Ngoài thiết

videoView.allowsInlineMediaPlayback = YES; 

Cách đơn giản nhất và bẩn nhất là để vô hiệu hóa điều khiển như thế này:

Một)

v1) javascript mã (chú ý controls:0) :

...

player = new YT.Player('player', 
    { width:'100%', height:'50%', videoId:'[your video id]', 
     playerVars: { 
      controls:0, 
      rel:0, modestbranding:1, html5:1, showinfo:0 
     } 

...

v2) HTML Nhúng iFrame mã (chú ý &controls=0 và/hoặc &playsinline=1):

...

<iframe id="ytplayer" type="text/html" width="100%" src="http://www.youtube.com/[your_video_id]?autoplay=1&controls=0&playsinline=1&modestbranding=1&rel=0&showinfo=0&autohide=1&html5=1" webkit-playsinline frameborder="0"></iframe> 

...

B)

Bạn chỉ thêm &playsinline=1 (hoặc playsinline:1 trong trường hợp javascript tiếp theo bên trong playerVars) sử dụng trường hợp này sẽ vẫn có thể đi toàn màn hình, nhưng người chơi nên bắt đầu bình thường trong biên giới của tầm nhìn của bạn.

Tôi hy vọng điều này sẽ hữu ích.

+2

Bạn có ví dụ nào về điều này không? Nó sẽ là một trợ giúp tuyệt vời – Jasmeet

1

Đưa video vào tệp html5 và thêm webkit-playsinline vào thuộc tính của thẻ <video>. Sau đó, đặt webView.allowsInlineMediaPlayback = YES; Điều đó phù hợp với tôi.

0

Có vẻ như không có cách nào để thực hiện việc này với MPMoviePlayerController, nhưng cách giải quyết tốt nhất sử dụng UIWebView là mở YTPlayer do Youtube cung cấp. Bạn có thể lấy nguồn trên Github, sau đó bạn chỉ có thể theo dõi số tutorial này.

Tôi chỉ cần làm theo hướng dẫn đó và nó hoạt động khá tốt và khá tùy biến. Toàn màn hình phát trong một AVFullScreenViewController là tiêu chuẩn hệ thống, do đó, nó có thể được xoay để xem toàn màn hình tốt hơn.

3

Tôi đang sử dụng UIView được xác định là YTPlayerView để phát video.

Tôi đi theo hướng dẫn này: YouTube Tutorial to Embed Video

Tôi tạo ra một từ điển. Sau đó tôi thêm nó vào định nghĩa videoId (video tôi đang phát).

Từ YouTube Hướng dẫn:

Thay loadWithVideoId: gọi với mã này:

Objective-C

NSDictionary *playerVars = @{ 
    @"playsinline" : @YES, 
}; 

[self.playerView loadWithVideoId:@"M7lc1UVf-VE" playerVars:playerVars]; 

Swift 2.1:

var playerVars = ["playsinline" : 1] 

    videoId.loadWithVideoId(["videoId"], playerVars: playerVars) 

Thao tác này sẽ tắt toàn màn hình khi cố phát video và nó cũng cho phép người dùng xem toàn màn hình nếu muốn.

Hy vọng rằng sẽ giúp ai đó.

+0

Nó có chống lại Youtube api ToS không? –

+0

Không. Không. Mọi người đều sử dụng nó. @RoiMulia – lukaivicev

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