2012-12-23 20 views
16

Tôi đang sử dụng API trình phát trên Android của YouTube và muốn phủ một chế độ xem lên trên YouTubePlayerFragment để hiển thị thông tin và điều khiển theo ngữ cảnh phía trên video phát .Chế độ xem được xếp chồng lên trên YouTubePlayerFragment hoặc YouTubePlayerXem trong phân cấp bố cục khiến phát lại tạm dừng ngay lập tức

Rất tiếc, có vẻ như quá trình phát không hoạt động chính xác ở một số YouTubePlayerFragment hoặc YouTubePlayerView bất cứ khi nào có một hoặc nhiều chế độ xem được xếp chồng lên trên trình phát trong phân cấp bố cục. Phát lại xảy ra trong ít hơn nửa giây trước khi tạm dừng ngay lập tức.

Vấn đề này có thể được sao chép bằng cách sử dụng cách bố trí sau cho bản demo PlayerFragment đơn giản mà tàu với SDK:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <fragment 
     android:name="com.google.android.youtube.player.YouTubePlayerFragment" 
     android:id="@+id/youtube_fragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="@android:style/TextAppearance.Small" 
     android:layout_alignParentTop="true" 
     android:text="@string/playerfragment_text"/> 

</RelativeLayout> 

Tôi đã thử cấu hình bố trí khác nhau sử dụng cả hai FrameLayoutRelativeLayout nhưng vấn đề này luôn luôn là như nhau . Tôi nhận thấy API này đã được phát hành là "thử nghiệm", nhưng nếu đây là một vấn đề đã biết, nó là một trình chặn khá lớn cho nhiều triển khai. Có ai có một giải pháp hay giải pháp tốt?

Trả lời

15

Jeff - công trình này được thiết kế như được thiết kế. Lớp phủ trên đầu bất kỳ trình phát YouTube nào của chúng tôi (bao gồm Trình phát YouTube trên Android) không được hỗ trợ. Khi phát hiện lớp phủ, phát lại dừng lại và nhật ký chứa thông tin hữu ích trong việc gỡ lỗi sự cố. Chúng tôi hỗ trợ lớp phủ Thanh tác vụ, hãy xem bản trình diễn này để tìm hiểu thêm: https://developers.google.com/youtube/android/player/sample-applications#Overlay_ActionBar_Demo.

+0

Cảm ơn Jarek. Điều này có vẻ giống như một cái gì đó cần được đề cập rõ ràng hơn trong tài liệu và có thể được xử lý rõ ràng hơn trong thời gian chạy. Tôi có thể hiển thị thành công phân đoạn hộp thoại trên trình phát và đặt nền có thể vẽ trong suốt để đạt được hiệu quả mong muốn (với nỗ lực nhiều hơn một chút) vì vậy tôi không chắc chắn hạn chế thiết kế này đang cố gắng đạt được. –

+0

Jeff - lớp phủ hiện đang chống lại ToS của chúng tôi do đó hạn chế. Tôi đồng ý chúng ta nên làm cho nó nổi bật hơn và chúng tôi đang làm việc để cập nhật để trang trải tốt hơn. –

+0

@wjarek ToS nói, có ổn không khi bạn xem lớp phủ khi trình phát YouTube bị tạm dừng? – eveliotc

4

Trình phát Youtube không cho phép bất kỳ lớp phủ chế độ xem nào. Chỉ cần sử dụng setVisibility (View.GONE) cho tất cả các lớp phủ xem nó.

+2

có hoạt động tốt. nhưng đó không phải là cách hay để làm cho YouTubePlayer hoạt động bình thường. –

0

Bạn có thể đặt chủ đề trình phát thành YouTubePlayer.PlayerStyle.CHROMELESS và sau đó triển khai các điều khiển của riêng bạn bên dưới.

Tôi đang gặp sự cố nơi tôi không thể tìm thấy tài nguyên tốt về cách triển khai lại thanh tìm kiếm bằng bố cục tùy chỉnh.

+0

Ngay cả với PlayerStyle.CHROMELESS Tôi gặp lỗi tương tự. – Borzh

3

Không thể để thêm các nút như lớp phủ trên các cầu thủ theo quy định của Google, nếu không thì người chơi sẽ ngừng:

https://developers.google.com/youtube/android/player/reference/com/google/android/youtube/player/YouTubePlayerView

Lưu ý rằng trong khi video đang chơi, Xem này có tối thiểu kích thước của 200x110 dp. Nếu bạn thực hiện chế độ xem nhỏ hơn, video sẽ tự động ngừng phát. . Ngoài ra, không được phép che phủ chế độ xem với các chế độ xem khác trong khi video đang phát.

Chế độ xem này không hỗ trợ đệm. Để đạt được hiệu quả tương tự, hãy quấn chế độ xem trong một ViewGroup khác hoặc cung cấp cho nó lợi nhuận.

Đệm cũng không được hỗ trợ trên YouTubePlayer.

Để che phủ tầm nhìn của bạn về video, tôi sẽ khuyên bạn nên sử dụng ExoPlayer, Nó không phải là một phần của sdk android, nhưng nó khuyến cáo của google và đưa vào tài liệu hướng dẫn phát triển android:

http://google.github.io/ExoPlayer/

Cũng nên nói rằng Exoplayer được sử dụng trong ứng dụng youtube.

+0

Xin chào, Có thể đặt văn bản trong chế độ xem trình phát bằng cách sử dụng ExoPlayer không? – Rajesh

0

Volla !! Tôi đã có một kịch bản mà vấn đề này đã đến trong các thiết bị lollipop và ở trên và đó là vì thanh trạng thái. Tôi ẩn vấn đề thanh trạng thái được giải quyết. Chỉ cần viết nó như là một câu trả lời trong trường hợp nếu nó giúp những người khác :)

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