2013-08-29 57 views
5

Tôi đang cố gắng tạo ứng dụng phát danh sách video. Một triển khai rất cơ bản của nó dựa trên các mẫu API.Tự động bỏ qua video trong youtube khi xảy ra lỗi khi sử dụng YouTube Android SDK

Danh sách phát (mảng video_ids) được tải bằng phương pháp player.loadVideos. Các thay đổi trong trạng thái trình phát được theo dõi bằng cách triển khai PlayerStateChangeListener.

Mọi thứ hoạt động tốt và video phát lại từ đầu đến cuối (như mong đợi).

Khi có một lỗi trong phát video, (ví dụ. YouTubePlayer.ErrorReason.NOT_PLAYABLE), nó được chụp trong phương pháp onError của PlayerStateChangeListener, và tôi gọi player.next() có để chuyển sang video tiếp theo.

Tuy nhiên, player.next không hoạt động sau khi có lỗi - về cơ bản khi có lỗi, không có gì tôi có thể làm điều đó sẽ bỏ qua video đó và phát video tiếp theo xếp hàng đợi trong danh sách phát.

Trả lời

0

Khi xảy ra lỗi trình phát trong khi YouTubePlayer phát danh sách phát, hãy gọi next() không có hiệu lực. Tôi tin rằng điều này là do lỗi trong YouTubePlayer không thể khôi phục được. Giải pháp là tải lại danh sách phát có chỉ mục danh sách phát tiếp theo.

Vì vậy, để theo dõi các chỉ số danh sách nhạc hiện nay,

@Override // YouTubePlayer.PlaylistEventListener 
public void onPrevious() 
{ 
    mPlaylistIndex--; 
} 

@Override // YouTubePlayer.PlaylistEventListener 
public void onNext() 
{ 
    mPlaylistIndex++; 
} 

Sau đó, trong onerror(),

@Override // YouTubePlayer.PlayerStateChangeListener 
public void onError(YouTubePlayer.ErrorReason errorReason) 
{ 
    Log.d(TAG, "YouTubePlayer error: " + errorReason); 

    // Check if the mContentId is of kind video or playlist, 
    // if video, there is nothing you can do, end playback. 

    // Check if the mPlaylistIndex is the last video in playlist, 
    // if so, there is nothing you can do, end playback. 

    mPlaylistIndex++; 
    mYouTubePlayer.loadPlaylist(mContentId, mPlaylistIndex, 0); 
}