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

android 播放rtsp流的三种方式,2024阿里Android高级面试题总结

  • 使用SurfaceView+MediaPlayer

<SurfaceView

android:id=“@+id/surface_view”

android:layout_width=“250dp”

android:layout_height=“250dp”

app:layout_constraintRight_toRightOf=“parent”

app:layout_constraintTop_toTopOf=“parent” />

private String uri = “rtsp://192.168.1.10:554/user=admin_password=nTBCS19C_channel=1_stream=0.sdp?real_stream”;

@Override

protected void onDestroyFrame() {

super.onDestroyFrame();

if (mediaPlayer.isPlaying()) {

mediaPlayer.stop();//停止音频的播放

}

mediaPlayer.release();//释放资源

}

private MediaPlayer mediaPlayer;

@Override

protected void attachedToWindow() {

mediaPlayer = MediaPlayer.create(MainActivity.this, Uri.parse(uri));

binding.surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() {

@Override

public void surfaceCreated(SurfaceHolder holder) {

mediaPlayer.setDisplay(holder);

//播放

mediaPlayer.start();

}

@Override

public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {

}

@Override

public void surfaceDestroyed(SurfaceHolder holder) {

}

});

}

  • 使用开源库NodeMediaClient-Android

附上链接 https://github.com/NodeMedia/NodeMediaClient-Android

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

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

项目gradle中

allprojects {

repositories {

google()

jcenter()

maven { url ‘https://jitpack.io’ }

}

}

dependencies {

compile ‘com.github.NodeMedia:NodeMediaClient-Android:2.8.4’

}

<LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”

xmlns:app=“http://schemas.android.com/apk/res-auto”

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

总结

【Android 详细知识点思维脑图(技能树)】

image

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。

这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

详细整理在GitHub:Android架构视频+BAT面试专题PDF+学习笔记​

PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。

由于篇幅有限,这里以图片的形式给大家展示一小部分。

[外链图片转存中…(img-UxhSM80I-1710503096309)]

详细整理在GitHub:Android架构视频+BAT面试专题PDF+学习笔记​

网上学习 Android的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。

http://www.lryc.cn/news/318451.html

相关文章:

  • unity显示当前时间
  • SDK报错(1)undefined reference to `f_mount‘
  • YOLOv8_pose-Openvino和ONNXRuntime推理【CPU】
  • 百科 | 光伏电站如何开展运维工作?
  • 监听抖音直播间的评论并实现存储
  • 一体机电脑辐射超标整改
  • 重学SpringBoot3-路径匹配机制
  • 【贪心算法】摆动序列
  • Unload-labs
  • SRS-220VDC-4Z-10A静态中间继电器 额定电压DC220V 四副转换触点 JOSEF约瑟
  • 解决electron打包vue-element-admin项目页面无法跳转的问题
  • Uniapp Vue2 image src动态绑定static目录下的图片
  • 【UE5】动画混合空间的基本用法
  • 用红黑树封装实现map和set
  • 【阿里云系列】-部署ACK集群的POD应用日志如何集成到日志服务(SLS)中
  • Vue中给当前页面传递参数并重新加载,vue使用this.$router.push跳转页面,给跳转过去的页面传参不一致时重新加载
  • 【扩散模型(一)】综述:扩散模型在文本生成领域应用
  • K8S Pod
  • 反向传播(backward propagation,BP) python实现
  • 简单算命脚本
  • Lua-掌握Lua语言基础1
  • python-0003-pycharm开发虚拟环境中的项目
  • 修改 MySQL update_time 默认值的坑
  • 基于亚马逊云EC2+Docker搭建nextcloud私有化云盘
  • 用try...catch进行判断
  • 服务器遭遇挖矿病毒syst3md及其伪装者rcu-sched:原因、症状与解决方案
  • 此机非彼机,工业计算机在工业行业的特殊地位
  • Python使用lxml解析XML格式化数据
  • CDA-LevelⅡ【考题整理-带答案】
  • 20240304 json可以包含复杂数组(数组里面套数组)