[Android]大牛直播SDK基于unity3d平台的rtmp/rtsp直播播放端SDK接口说明
最近,好多开发者在unity3d平台面临一个问题,难于找到一个真正靠谱的低延迟rtmp播放器或rtsp播放器。
不少开发者联系我们,希望大牛直播SDK能出官方版的unity3d直播播放器SDK,以下是Android端的SDK接口:
/// <summary> /// Init /// </summary> public int NT_U3D_Init() { return DANIULIVE_RETURN_OK; } /// <summary> /// 开始 /// 返回播放句柄 /// </summary> public long NT_U3D_Open() { if ( 0 != player_obj_.Call<int>("Init", java_obj_cur_activity_) ) { return 0; } return player_obj_.Call<long>("Open"); } /// <summary> /// Register Game Object,用于消息传递 /// </summary> public int NT_U3D_Set_Game_Object(long handle, string gameObjectName) { return player_obj_.Call<int>("SetGameObject", handle, gameObjectName); } /// <summary> /// 设置解码方式 false 软件解码 true 硬件解码 默认为false /// </summary> /// <param name="isHwDecoder"></param> public int NT_U3D_SetVideoDecoderMode(long handle, int isHwDecoder) { return player_obj_.Call<int>("SetPlayerVideoHWDecoder", handle, isHwDecoder); } /// <summary> /// 设置音频输出模式: if 0: 自动选择; if with 1: audiotrack模式 /// </summary> /// <param name="use_audiotrack"></param> public int NT_U3D_SetAudioOutputType(long handle, int use_audiotrack) { return player_obj_.Call<int>("SetAudioOutputType", handle, use_audiotrack); } /// <summary> /// 设置播放端缓存大小, 默认200毫秒 /// </summary> /// <param name="buffer"></param> public int NT_U3D_SetBuffer(long handle, int buffer) { return player_obj_.Call<int>("SetBuffer", handle, buffer); } /// <summary> /// 接口可实时调用:设置是否实时静音,1:静音; 0: 取消静音 /// </summary> /// <param name="is_mute"></param> public int NT_U3D_SetMute(long handle, int is_mute) { return player_obj_.Call<int>("SetMute", handle, is_mute); } /// <summary> /// 设置RTSP TCP模式, 1: TCP; 0: UDP /// </summary> /// <param name="is_using_tcp"></param> public int NT_U3D_SetRTSPTcpMode(long handle, int is_using_tcp) { return player_obj_.Call<int>("SetRTSPTcpMode", handle, is_using_tcp); } /// <summary> /// 设置超低延迟模式 false不开启 true开启 默认false /// </summary> /// <param name="mode"></param> public int NT_U3D_SetPlayerLowLatencyMode(long handle, int mode) { return player_obj_.Call<int>("SetPlayerLowLatencyMode", handle, mode); } /// <summary> /// 设置是否回调下载速度 /// is_report: if 1: 上报下载速度, 0: 不上报. /// report_interval: 上报间隔,以秒为单位,>0. /// </summary> /// <param name="is_report"></param> /// <param name="report_interval"></param> public int NT_U3D_SetReportDownloadSpeed(long handle, int is_report, int report_interval) { return player_obj_.Call<int>("SetReportDownloadSpeed", handle, is_report, report_interval); } /// <summary> /// 设置是否需要在播放或录像过程中快照 /// </summary> /// <param name="is_save_image"></param> public int NT_U3D_SetSaveImageFlag(long handle, int is_save_image) { return player_obj_.Call<int>("SetSaveImageFlag", handle, is_save_image); } /// <summary> /// 播放或录像过程中快照 /// </summary> /// <param name="imageName"></param> public int NT_U3D_SaveCurImage(long handle, string imageName) { return player_obj_.Call<int>("SaveCurImage", handle, imageName); } /// <summary> /// 播放或录像过程中,快速切换url /// </summary> /// <param name="uri"></param> public int NT_U3D_SwitchPlaybackUrl(long handle, string uri) { return player_obj_.Call<int>("SwitchPlaybackUrl", handle, uri); } /// <summary> /// 创建录像存储路径 /// </summary> /// <param name="path"></param> public int NT_U3D_CreateFileDirectory(string path) { return player_obj_.Call<int>("CreateFileDirectory", path); } /// <summary> /// 设置录像存储路径 /// </summary> /// <param name="path"></param> public int NT_U3D_SetRecorderDirectory(long handle, string path) { return player_obj_.Call<int>("SetRecorderDirectory", handle, path); } /// <summary> /// 设置单个录像文件大小 /// </summary> /// <param name="size"></param> public int NT_U3D_SetRecorderFileMaxSize(long handle, int size) { return player_obj_.Call<int>("SetRecorderFileMaxSize", handle, size); } /// <summary> /// 设置播放路径 /// </summary> public int NT_U3D_SetUrl(long handle, string url) { return player_obj_.Call<int>("SetUrl", handle, url); } /// <summary> /// 开始播放 /// </summary> public int NT_U3D_StartPlay(long handle) { return player_obj_.Call<int>("StartPlay", handle); } /// <summary> /// 获取YUV数据 /// </summary> public AndroidJavaObject NT_U3D_GetVideoFrame(long handle) { return player_obj_.Call<AndroidJavaObject>("GetVideoFrame", handle); } /// <summary> /// 停止播放 /// </summary> public int NT_U3D_StopPlay(long handle) { return player_obj_.Call<int>("StopPlay", handle); } /// <summary> /// 开始录像 /// </summary> public int NT_U3D_StartRecorder(long handle) { return player_obj_.Call<int>("StartRecorder", handle); } /// <summary> /// 停止录像 /// </summary> public int NT_U3D_StopRecorder(long handle) { return player_obj_.Call<int>("StopRecorder", handle); } /// <summary> /// 关闭播放 /// </summary> public int NT_U3D_Close(long handle) { return player_obj_.Call<int>("Close", handle); } /// <summary> /// UnInit Player /// </summary> public int NT_U3D_UnInit() { return DANIULIVE_RETURN_OK; }
经测试,Android/iOS端效果如下,播放端延迟低于1秒,也可能是unity3d平台下最快最稳定的rtmp播放器/rtsp播放器:
视频效果图:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
volley框架使用小Demo
MainActivity public class MainActivity extends AppCompatActivity { private static final String URL = "https://www.baidu.com/"; private RequestQueue mQueue; // volley的请求队列 @BindView(R.id.volley_get) Button btn; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mQueue = Volley.newRequestQueue(getApplicationContext()); ButterKnife.bind(this); } @OnClick({R.id.volley_get}) public void onClick(...
- 下一篇
Flutter从入门到实战
版权声明:本文为博主原创文章,转载请注明出处http://blog.csdn.net/u013132758。 https://blog.csdn.net/u013132758/article/details/80474494 Flutter从入门到实战 Flutter概述 Flutter是一款移动应用程序SDK,一份代码可以同时生成iOS和Android两个高性能、高保真的应用程序。 Flutter目标是使开发人员能够交付在不同平台上都感觉自然流畅的高性能应用程序。我们兼容滚动行为、排版、图标等方面的差异。 无需移动开发经验即可开始使用。应用程序是用Dart语言编写的,如果您使用过Java或JavaScript之类的语言,则该应用程序看起来很熟悉。使用面向对象语言的经验绝对有帮助,但一些Flutter应用程序甚至是没有编程经验的人写的! Flutter的优势 提高开发效率 同一份代码开发iOS和Android 用更少的代码做更多的事情 轻松迭代 在应用程序运行时更改代码并重新加载(通过热重载) 修复崩溃并继续从应用程序停止的地方进行调试 创建美观,高度定制的用户体验 受益于使用Flut...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 2048小游戏-低调大师作品
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS关闭SELinux安全模块
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- 设置Eclipse缩进为4个空格,增强代码规范
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS7安装Docker,走上虚拟化容器引擎之路