什么是十大音频直播平台排行榜SDL?哪家十大音频直播平台排行榜SDK功能较为全面?有声网这个品牌的吗?

场景开发者因为场景需要,希望能获取到视频画面的原始数据(YUV 数据),然后再进行处理或渲染。解决方案1、实现 TXLivePushListener 接口,然后在onPlayEvent(int event, Bundle param) 方法中,监听TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION 事件mLivePusher.setPushListener(this);
public void onPlayEvent(int event, Bundle param) {
//...
if (event == TXLiveConstants.PLAY_EVT_CHANGE_RESOLUTION) {
//获取视频的宽高
int width = param.getInt(TXLiveConstants.EVT_PARAM1, 0);
int height = param.getInt(TXLiveConstants.EVT_PARAM2, 0);
if (width != 0 && height != 0 && !mHWDecode) {
//创建存储 yuv 数据的 buffer,目前输出的 yuv 格式为 I420
byte[] buf = new byte[width * height * 3 / 2];
//将 buffer 设置进 mLivePlaye
mLivePlayer.addVideoRawData(buf);
}
}
}2、通过 VideoRawDataListener 获取 YUV 数据mLivePlayer.setVideoRawDataListener(rawDataListener);
TXVideoRawDataObserver.ITXVideoRawDataListener rawDataListener = new
TXVideoRawDataObserver.ITXVideoRawDataListener() {
@Override
public void onVideoRawDataAvailable(byte[] buf, int width, int height, int timestamp) {
//解码一帧后的数据回调,buf 中存放了 yuv 数据,格式为 I420
if (!mHWDecode) {
// 如果需要继续获取yuv数据,需要重新调用addVideoRawData方法
// yuvBuffer大小应该等于视频width*height*3/2
mLivePlayer.addVideoRawData(buf);
}
}
};原理软件解码是由CPU负责解码,然后进行播放。这种方式解码出来的画面数据格式是 YUV 数据。而硬件解码是使用显卡进行解码,需要使用 OpenGL进行解码,所以解码出来的画面数据格式 Texture。注意事项1、setVideoRawDataListener只支持软件解码。2、只能获取直播场景下的 YUV 数据,不支持点播场景。}

我要回帖

更多关于 广播系统10大品牌 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信