当前位置: 首页 > news >正文

做百度联盟用什么做网站邢台哪儿做wap网站好

做百度联盟用什么做网站,邢台哪儿做wap网站好,手机网站建设开发,网站开发者所有权归属一、技术背景 自2015年起,大牛直播SDK持续深耕音视频直播领域,自主研发并迭代推出跨平台 RTSP/RTMP 播放模块,具备如下核心优势: 全平台兼容:支持 Android/iOS/Windows/Linux 等主流系统; 超低延迟&#…

一、技术背景

自2015年起,大牛直播SDK持续深耕音视频直播领域,自主研发并迭代推出跨平台 RTSP/RTMP 播放模块,具备如下核心优势:

  • 全平台兼容:支持 Android/iOS/Windows/Linux 等主流系统;

  • 超低延迟:公网端到端延迟可低至 100ms~250ms;

  • 性能强劲:CPU 占用低,解码效率高;

  • 稳定性高:适配复杂网络环境,支持自动重连、快照、断网恢复等能力;

  • 接口全面:支持软硬解、数据回调、多实例、实时截图、录像等。

本文将以 Android 平台为例,详解如何对接并使用大牛直播 RTSP/RTMP 播放模块(SmartPlayerV2)。


二、系统要求

项目支持情况
Android系统Android 5.1 及以上版本
架构支持armv7, arm64, x86, x86_64
渲染机制SurfaceView / OpenGL ES / TextureView

三、准备工作

华为HONOR X10同时播放4路1080P RTSP流

1. 引入资源文件

将以下资源文件集成至工程:

文件名称说明
SmartPlayer.jar上层接口封装,放入 libs/ 目录
SmartPlayerJniV2.javaJNI 接口桥接类,建议放入 com.daniulive.smartplayer 包下
SmartPlayer.java上层封装类,用于统一操作
libSmartPlayer.soC++ 播放内核,放入对应架构 jniLibs

2. 权限配置(AndroidManifest.xml)

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

3. 加载 native 库

static {System.loadLibrary("SmartPlayer");
}

4. Gradle ABI 配置

splits {abi {enable truereset()include 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'universalApk true}
}

5. app_name 配置(授权验证)

<string name="app_name">SmartPlayerSDKDemo</string>

四、核心接口说明(SmartPlayerJniV2)

1. 初始化与控制流程

接口说明
SmartPlayerOpen创建播放器实例,返回句柄
SmartPlayerSetUrl设置播放 URL(RTSP/RTMP)
SmartPlayerStartPlay启动播放
SmartPlayerStopPlay停止播放
SmartPlayerClose释放播放器实例

2. 解码与渲染配置

接口说明
SetSmartPlayerVideoHWDecoder设置 H.264 硬解模式
SetSmartPlayerVideoHevcHWDecoder设置 H.265 硬解模式
SmartPlayerSetSurface绑定 Surface 用于画面显示
SmartPlayerSetHWRenderMode设置 MediaCodec 绘制(兼容性更高)
SmartPlayerSetRenderScaleMode设置画面缩放填充模式(1为等比)
SmartPlayerSetSurfaceRenderFormatSurfaceView 渲染格式
SmartPlayerSetSurfaceAntiAlias开启抗锯齿(性能损耗,谨慎使用)

3. 网络与播放优化

接口说明
SmartPlayerSetBuffer设置播放缓存(单位:ms)
SmartPlayerSetFastStartup启用首屏秒开
SmartPlayerSetLowLatencyMode启用低延迟模式
SmartPlayerSwitchPlaybackUrl快速切换播放 URL
SmartPlayerSetRTSPTcpMode设置 RTSP TCP 模式
SmartPlayerSetRTSPTimeout设置 RTSP 超时时间(单位:秒)
SmartPlayerSetRTSPAutoSwitchTcpUdp自动 TCP/UDP 切换
DisableEnhancedRTMP禁用 Enhanced RTMP 支持

4. 音视频控制与扩展功能

接口说明
SmartPlayerSetMute实时静音
SmartPlayerSetAudioVolume设置音量(0~100)
CaptureImage实时截图(支持 JPEG/PNG)
SmartPlayerSetRotation视频旋转(0/90/180/270°)
SmartPlayerSetFlipHorizontal水平镜像
SmartPlayerSetFlipVertical垂直镜像
SmartPlayerSetExternalRender回调解码后 YUV/RGB 数据供自定义渲染
SmartPlayerSetExternalAudioOutput音频数据回调
SmartPlayerSetAudioOutputType选择音频输出类型(AudioTrack/OpenSL)

五、播放流程参考(Java 示例)

1. 创建播放器并初始化配置

SmartPlayerJniV2 libPlayer = new SmartPlayerJniV2();
long playerHandle = libPlayer.SmartPlayerOpen(getApplicationContext());
libPlayer.SmartPlayerSetUrl(playerHandle, "rtmp://xxx/live/stream");
libPlayer.SmartPlayerSetBuffer(playerHandle, 300);
libPlayer.SmartPlayerSetLowLatencyMode(playerHandle, 1);
libPlayer.SmartPlayerSetSurface(playerHandle, surfaceView);
libPlayer.SmartPlayerStartPlay(playerHandle);

2. 设置播放事件监听

class EventHandeV2 implements NTSmartEventCallbackV2 {@Overridepublic void onNTSmartEventCallbackV2(long handle, int id, long param1,long param2, String param3, String param4, Object param5) {//Log.i(TAG, "EventHandeV2: handle=" + handle + " id:" + id);String player_event = "";switch (id) {case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_STARTED:player_event = "开始..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTING:player_event = "连接中..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTION_FAILED:player_event = "连接失败..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_CONNECTED:player_event = "连接成功..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_DISCONNECTED:player_event = "连接断开..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_STOP:player_event = "停止播放..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_RESOLUTION_INFO:player_event = "分辨率信息: width: " + param1 + ", height: " + param2;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_NO_MEDIADATA_RECEIVED:player_event = "收不到媒体数据,可能是url错误..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_SWITCH_URL:player_event = "切换播放URL..";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_CAPTURE_IMAGE:player_event = "快照: " + param1 + " 路径:" + param3;if (param1 == 0)player_event = player_event + ", 截取快照成功";elseplayer_event = player_event + ", 截取快照失败";if (param4 != null && !param4.isEmpty())player_event += (", user data:" + param4);break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_RECORDER_START_NEW_FILE:player_event = "[record]开始一个新的录像文件 : " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_ONE_RECORDER_FILE_FINISHED:player_event = "[record]已生成一个录像文件 : " + param3;break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_START_BUFFERING:Log.i(TAG, "Start Buffering");break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_BUFFERING:Log.i(TAG, "Buffering:" + param1 + "%");break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_STOP_BUFFERING:Log.i(TAG, "Stop Buffering");break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_DOWNLOAD_SPEED:player_event = "download_speed:" + param1 + "Byte/s" + ", "+ (param1 * 8 / 1000) + "kbps" + ", " + (param1 / 1024)+ "KB/s";break;case NTSmartEventID.EVENT_DANIULIVE_ERC_PLAYER_RTSP_STATUS_CODE:Log.e(TAG, "RTSP error code received, please make sure username/password is correct, error code:" + param1);player_event = "RTSP error code:" + param1;break;}if (player_event.length() > 0) {Log.i(TAG, player_event);Message message = new Message();message.what = PLAYER_EVENT_MSG;message.obj = player_event;handler.sendMessage(message);}}
}

3. 停止与释放资源

libPlayer.SmartPlayerStopPlay(playerHandle);
libPlayer.SmartPlayerClose(playerHandle);

六、多实例播放封装(LibPlayerWrapper)

推荐封装 SmartPlayer 播放实例为 LibPlayerWrapper 类,实现多实例管理、资源释放、播放状态判断等能力,便于集成。

封装内容包括:

  • 打开与关闭播放器

  • 设置 Surface/播放参数

  • 启动/停止播放

  • 设置静音、音量、截图等控制

详见源码文件 LibPlayerWrapper.java


七、附录:支持功能一览

  • 支持协议:RTMP、RTSP(含鉴权、TCP/UDP)

  • 音频编码:AAC、Speex、PCMA、PCMU

  • 视频编码:H.264、H.265

  • 渲染方式:SurfaceView/OpenGL ES/TextureView

  • 解码方式:软解、硬解(支持自动降级)

  • 回调接口:解码前、解码后、下载速度、事件状态

  • 附加能力:截图、旋转、镜像、切流、低延迟播放、首屏秒开、多实例支持、录像功能扩展


八、总结

本文全面介绍了大牛直播 SDK 在 Android 平台下的 RTSP/RTMP 播放模块集成方式,重点涵盖依赖配置、接口调用、播放控制、多实例封装等内容。SmartPlayer 播放模块具备超低延迟、高稳定性、强兼容性与良好扩展性,适用于安防监控、远程教育、互动直播、工业图传等多个领域。

http://www.dtcms.com/a/437612.html

相关文章:

  • dw软件可以做哪些网站中国菲律宾撤侨最新消息
  • 网站制作商域名注册空间网站
  • 合肥网站建设技术wordpress固定字段
  • 网站描述范例国外免费虚拟主机
  • 微信小程序一站式开发网站子域名怎么设置
  • 网站开发文档货架 网站建设 牛商网
  • 北京网站建设 云智互联怎么弄数据库备份做网站
  • 长春网站z制作建筑材料价格信息网
  • 住房城乡与建设厅网站首页想要学做网站
  • 无锡网站app微信号软件网站开发
  • 网站建设架构长春网站建设服务
  • 网站做跳转怎么做网站开发建设需要多少钱
  • 中小企业网站多大空间怎么提升学历最快
  • 自己制作网站需要什么南阳网站备案
  • 怎么做企业销售网站福永网站优化
  • 网站建设木马科技网页设计免费模板网站推荐
  • 网站建设协议书怎么写广州做内销鞋的网站
  • 宿豫区建设局网站2022年最火的新闻摘抄
  • 介绍婚纱网站的ppt怎么做手机创建网站免费注册
  • 大型网站开发语言wordpress post slug codex
  • 在网上做贸易哪个网站好朔州城市建设网站
  • 网站开发需求分析包括什么it公论 是建立在什么网站
  • 我要建立自己的网站做电子杂志用什么网站
  • wordpress建电商网站二级域名解析查询
  • vue做的网站域名汇总网站开发编程入门学习
  • 成都网站优化北京建设公司的网站
  • 东莞专业网站推广工具中国室内设计大奖赛
  • 免费微信网站开发酷炫 网站模板
  • 深圳企业网站哪家强上海的装修公司排名
  • 网站开发代码语言企业注册号