有没有办法从Android youtube播放器api获得缓冲时间

时间:2013-12-20 06:29:55

标签: android youtube android-youtube-api

我正在使用android youtube api来创建我自己的播放器,我找不到api来显示curet缓冲统计数据。有人知道如何获得当前的缓冲状态吗?

以下代码可以获得整个视频时间当前播放时间,但我需要 缓冲时间 < / p>

private String getTimesText() {
    int currentTimeMillis = player.getCurrentTimeMillis();
    int durationMillis = player.getDurationMillis();
    return String.format("(%s/%s)", formatTime(currentTimeMillis), formatTime(durationMillis));
}

我还看到 PlaybackEventListener 上有回调函数,但同样我无法找到获取 缓冲时间的方法 < / p>

@Override
public void onBuffering(boolean isBuffering) {
    bufferingState = isBuffering ? "(BUFFERING)" : "";
    updateText();
    log("\t\t" + (isBuffering ? "BUFFERING " : "NOT BUFFERING ") + getTimesText());
}

感谢您抽出时间阅读/回答此问题。

2 个答案:

答案 0 :(得分:1)

实际上,没有直接的方法来获取YoutubePlayer的总缓冲时间,因此您可以这样做,并且应该可以工作,

long startBufferdTime = 0;
long endBufferdTime = 0;
long totalBufferringTime = 0;
@Override
public void onBuffering(boolean isBuffering) {


    if (isBuffering) {
        startBufferdTime = System.currentTimeMillis();
    }

    if (!isBuffering) {
        endBufferdTime = System.currentTimeMillis();
    }

    totalBufferringTime = endBufferdTime - startBufferdTime;

}

答案 1 :(得分:0)

通常在缓冲启动时,标志isBuffering将为true,当缓冲结束时,它将为false。 所以你需要计算这两个标志之间的时差。