android 播放rtsp流的三种方式(1),Android播放RTSP流的三种方式(入门篇)

马肤

温馨提示:这篇文章已超过443天没有更新,请注意相关的内容是否还可用!

摘要:本文介绍了在Android平台上播放RTSP流的三种方式。第一种方式是通过使用Android的Media Player类来播放RTSP流,这种方式简单易用,但可能不支持所有类型的RTSP流。还可以通过使用第三方库如VLC或FFmpeg来实现RTSP流的播放,这些方式提供了更多的自定义选项和更广泛的兼容性,但可能需要更复杂的配置和编程技能。

https://github.com/NodeMedia/NodeMediaClient-Android

附上demo地址:https://github.com/NodeMedia/QLive-Android

android 播放rtsp流的三种方式(1),Android播放RTSP流的三种方式(入门篇) 第1张

文档地址:https://github.com/NodeMedia/NodeMediaClient-Android/blob/2.x/docs/NodePlayer_API_CN.md

android 播放rtsp流的三种方式(1),Android播放RTSP流的三种方式(入门篇) 第2张

在项目gradle中,需要添加以下配置:

android 播放rtsp流的三种方式(1),Android播放RTSP流的三种方式(入门篇) 第3张

allprojects {
    repositories {
        google()
        jcenter()
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    compile 'com.github.NodeMedia:NodeMediaClient-Android:2.8.4'
}

接下来是一个名为MainActivity的示例类,它继承自AppCompatActivity:

android 播放rtsp流的三种方式(1),Android播放RTSP流的三种方式(入门篇) 第4张

public class MainActivity extends AppCompatActivity {
    private NodePlayerView nodePlayerView;
    private NodePlayer nodePlayer;
    @Override
    protected void onDestroy() {
        super.onDestroy();
        nodePlayer.stop();
        nodePlayer.release();
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        nodePlayerView = findViewById(R.id.nodePlayer);
        // 设置渲染器类型
        nodePlayerView.setRenderType(NodePlayerView.RenderType.SURFACEVIEW);
        // 设置视频画面缩放模式
        nodePlayerView.setUIViewContentMode(NodePlayerView.UIViewContentMode.ScaleToFill);
        nodePlayer = new NodePlayer(this);
        // 设置播放视图
        nodePlayer.setPlayerView(nodePlayerView);
        // 设置RTSP流使用的传输协议,支持的模式有: TCP、UDP等,这里以TCP为例。
        nodePlayer.setRtspTransport(NodePlayer.RTSP_TRANSPORT_TCP); 假设要播放一个RTSP流,设置输入URL如下: nodePlayer.setInputUrl("rtsp://192.168.1.10:554/user=admin_password=nTBCS19C_channel=1_stream=0.sdp?real_stream"); //设置视频是否开启 nodePlayer.setVideoEnable(true); nodePlayer.setBufferTime(0); 自我介绍:我是XXX,于XXXX年毕业于上海交通大学,曾在小公司工作过,也曾在华为、OPPO等大厂任职,自XXXX年加入阿里巴巴至今,深知大多数初中级安卓工程师在技能提升方面的需求,因此整理了一份《XXXX年最新Android移动开发全套学习资料》,旨在帮助自学提升的朋友,减轻大家的负担,由于文件较大,这里仅展示部分目录截图,每个节点包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频等,如觉得内容有帮助,可添加我的联系方式(备注Android)无偿领取! 最后我想说,无论选择何种方向发展,学好Android技术都是目前的重要任务,对于程序员而言,要学习的知识内容和技能太多,要想不被环境淘汰,只有不断提升自己,附上我整理的几十套腾讯、字节跳动、京东、小米、头条、阿里、美团等公司近年的Android面试题,技术进阶之路漫长,一起共勉吧~ 需要注意的是,学到的知识必须成体系,遇到问题时不能浅尝辄止,要深入研究才能取得真正的技术提升,希望这份系统化的技术体系能为大家提供一个方向参考,网上学习Android的资料虽然很多,但建议选择一个系统的学习路径,这样才能更高效地进行学习。

0
收藏0
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。

相关阅读

  • 【研发日记】Matlab/Simulink自动生成代码(二)——五种选择结构实现方法,Matlab/Simulink自动生成代码的五种选择结构实现方法(二),Matlab/Simulink自动生成代码的五种选择结构实现方法详解(二)
  • 超级好用的C++实用库之跨平台实用方法,跨平台实用方法的C++实用库超好用指南,C++跨平台实用库使用指南,超好用实用方法集合,C++跨平台实用库超好用指南,方法与技巧集合
  • 【动态规划】斐波那契数列模型(C++),斐波那契数列模型(C++实现与动态规划解析),斐波那契数列模型解析与C++实现(动态规划)
  • 【C++】,string类底层的模拟实现,C++中string类的模拟底层实现探究
  • uniapp 小程序实现微信授权登录(前端和后端),Uniapp小程序实现微信授权登录全流程(前端后端全攻略),Uniapp小程序微信授权登录全流程攻略,前端后端全指南
  • Vue脚手架的安装(保姆级教程),Vue脚手架保姆级安装教程,Vue脚手架保姆级安装指南,Vue脚手架保姆级安装指南,从零开始教你如何安装Vue脚手架
  • 如何在树莓派 Raspberry Pi中本地部署一个web站点并实现无公网IP远程访问,树莓派上本地部署Web站点及无公网IP远程访问指南,树莓派部署Web站点及无公网IP远程访问指南,本地部署与远程访问实践,树莓派部署Web站点及无公网IP远程访问实践指南,树莓派部署Web站点及无公网IP远程访问实践指南,本地部署与远程访问详解,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南,树莓派部署Web站点及无公网IP远程访问实践详解,本地部署与远程访问指南。
  • vue2技术栈实现AI问答机器人功能(流式与非流式两种接口方法),Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法探究,Vue2技术栈实现AI问答机器人功能,流式与非流式接口方法详解
  • 发表评论

    快捷回复:表情:
    评论列表 (暂无评论,0人围观)

    还没有评论,来说两句吧...

    目录[+]

    取消
    微信二维码
    微信二维码
    支付宝二维码