android - 使用 YouTube Android SDK 发生错误时自动跳过 youtube 中的视频

标签 android video onerror android-youtube-api

我正在尝试构建一个播放视频列表的应用程序。它是基于 API 示例的非常基本的实现。

使用 player.loadVideos 方法加载播放列表(video_id 数组)。使用 PlayerStateChangeListener 的实现来跟踪播放器状态的变化。

一切正常,视频连续播放(如预期)。

当播放视频时出现错误(例如。YouTubePlayer.ErrorReason.NOT_PLAYABLE),它会在 PlayerStateChangeListener< 的 onError 方法中被捕获,然后我在那里调用 player.next() 继续播放下一个视频。

但是,player.next 在出现错误后不起作用 - 基本上一旦出现错误,我无能为力跳过该视频并播放下一个视频在播放列表中排队。

最佳答案

当 YouTubePlayer 播放播放列表时发生播放器错误时,调用 next() 无效。我相信这是因为 YouTubePlayer 中的错误是不可恢复的。解决方案是使用下一个播放列表索引重新加载播放列表。

因此,要跟踪当前播放列表索引,

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

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

然后,在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);
}

关于android - 使用 YouTube Android SDK 发生错误时自动跳过 youtube 中的视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18508433/

相关文章:

iphone - 视频混音器API?

android - 在视频上添加文本时出现ffmpeg错误

VBA:On Error Resume Next 工作多长时间?

android - 如何使字符串不区分大小写

android - 当设备上有相同的 native (Apple/Google) 帐户但应用程序帐户不同时恢复应用内购买

java - org.apache.http.conn.HttpHostConnectException : Connection to http://localhost refused

android - 添加项目以在 Android 中以编程方式查看

ios - UI图像颜色校正

javascript - 如何获取 XDomainRequest 对象中的错误信息?

javascript - 我想在 JavaScript 中为 img src 实现即发即弃请求