我需要从 exoplayer 中找到流媒体视频比特率,但似乎这段代码没有显示真实比特率
bitrateEstimate = bandwidthMeter.bitrateEstimate
最佳答案
Exoplayer 提供 BandwidthMeter 事件的监听器 here .
void onBandwidthSample(int elapsedMs, long bytesTransferred, long bitrateEstimate)
Called periodically to indicate that bytes have been transferred or the estimated bitrate has changed. Note: The estimated bitrate is typically derived from more information than just bytes and elapsedMs.
Parameters:
elapsedMs - The time taken to transfer bytesTransferred, in milliseconds. This is at most the elapsed time since the last callback, but may be less if there were periods during which data was not being transferred. bytesTransferred - The number of bytes transferred since the last callback. bitrateEstimate - The estimated bitrate in bits/sec.
您可以在您的代码中使用它,例如:
Handler handler = new Handler();
BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter.Builder(MainActivity.this).build();
bandwidthMeter.addEventListener(handler, new BandwidthMeter.EventListener() {
@Override
public void onBandwidthSample(int elapsedMs, long bytesTransferred, long bitrateEstimate) {
Log.d(TAG, "elapsedMs: " + elapsedMs);
Log.d(TAG, "bytes transferred: " + bytesTransferred);
Log.d(TAG, "Average bitrate (bps) = " + (double) (bytesTransferred * 8) / (elapsedMs / 1000));
}
});
关于android - 如何从 ExoPlayer2 中的实时视频中获取比特率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59355217/