- 博客(17)
- 资源 (3)
- 收藏
- 关注
原创 在ExoPlayer中使用ffmpeg进行音频解码(编译和使用)
Android项目中需要使用Exoplayer接收RTSP流进行解码显示。在解码过程中出现无法解码AAC音频的问题( aacDecoder_DecodeFrame decoderErr = 0x0005),因此决定在Exoplayer中引入FFMpeg扩展,进行音频解码。
2023-11-06 10:56:52 1068
原创 ExoPlayer系列1. HLS流播放
ExoPlayer是Google出品的视频播放器,功能强大,使用简单,独立于Android代码框架,以一个开源代码库的形式存在,可定制性强。ExoPlayer也是Google官方推荐的Android媒体播放器,可以在Android官方文档的音频和视频目录中找到。ExoPlayer和MediaPlayer相比,多了支持基于 HTTP 的动态自适应流 (DASH)、SmoothStreaming 和通用加密等功能。
2023-10-10 15:05:35 814 1
原创 Android Service 系列3. 如何在Service里弹出Dialog
本篇文章简单实现了如何在Service里面弹出Dialog。
2023-10-09 14:02:40 1486 2
原创 Android Service 系列2. Android开机启动Service和“ did not then call Service.startForeground()”异常
Override// 检查是否是开机广播//开启服务//需要增加,否则会报错。
2023-10-08 16:40:54 779 1
原创 Android Service 系列1. 概述和服务启动方法
Service是Android四大组件之一,它可以在后台执行长时间运行操作而没有用户界面的应用组件。即使程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。由其他组件调用startService()方法启动服务,启动它的组件(如Activity)和Service并没有关联。当服务是started状态时,其生命周期与启动它的组件无关,并且可以在后台无限期运行,即使启动服务的组件已经被销毁。
2023-09-27 15:44:15 777
原创 Android制作launcher程序
在AndroidManifest.xml文件里面,启动的Activity里面增加category.HOME和category.DEFAULT。
2023-09-26 09:51:04 48
原创 ExoPlayer环境搭建
更改编译版本compileSdkVersion升级到31,然后重新编译就能过。一、原有的build.gradle文件。将minSdkVersion改为26。三、build报错,sdk版本过低。二、引入ExoPlayer依赖库。
2023-07-25 13:38:53 236
原创 Android Studio里,SDK Manager显示不全问题。
在sdk manager里面,进入sdk update sites,点击右侧的“+”,输入一个镜像地址。【问题描述】:在SDK Manager里面,只显示自己已经安装的SDK版本,不显示其他未安装版本。输入dl.google.com,进行ping检测。选择一个地址,比如203.208.43.70。【前提】:有VPN,开了全局,依然不行。提交后, SDK列表还是没有出来了。在cmd里面确定可以ping通。1、在setting里面,将。在最后添加下述三行,保存。【解决尝试1】:没成功。【解决尝试2】:成功了。
2023-07-25 13:08:05 1148 1
原创 基于QT+Boost环境下的websocketpp客户端开发
最近工作中需要基于QT写一个websocket的客户端,因为服务器是用websocketpp做的,所以客户端也采用同一个框架,避免通讯中出现异常。如果使用websocketpp,必需先安装boost环境。整个开发环境版本:boost_1_80_0 + vs2017+QT5.12.8。
2023-07-21 15:05:46 749 1
原创 npm install 报错“ERESOLVE could not resolve”
因此输入:npm install --force 或者 npm install --legacy-peer-deps即可解决。解决的方法就是command with --force,或者--legacy-peer-deps。问题原因是依赖冲突导致不能下载依赖包(dependency conflict),--legacy-peer-deps 忽视依赖冲突,继续安装(不覆盖之前)--force 无视冲突,强制获取远端npm库资源 (覆盖之前)npmV7之前的版本遇到依赖冲突会忽视依赖冲突,继续进行安装,
2023-04-18 15:27:24 5625 2
原创 html2canvas控件截图时,图片显示不全
再回头查项目代码,发现canvas1和canvas2的外面,包了一层span,span的样式设置成了。但是截取后的图片,div里面的canvas显示不全,只能显示部分区域。查阅了html2canvas的git issus,找到类似的问题。使用html2canvas截取类似下方的图片。尝试过延时截图、跨域等方法,但是都没有解决。项目中需要将页面部分显示区域进行截图保存。div里面套了若干个canvas图片。去掉hidden,可以正常截图。
2023-03-15 11:43:05 2706
原创 vue 4.0 安装
1.vue安装npm install -g @vue/cli2.切换淘宝镜像cnpmnpm install nrm -g --save #安装nrmnrm ls #查看默认配置3.此时会出现bug报错throw new TypeError(‘Path must be a string. Received ‘ + inspect(path))?解决办法:打开nrm的文件夹下cli.js 第17行修改成const NRMRC = path.join(process.env[(p.
2021-06-30 13:26:41 491
原创 ffmpeg将本地yuv文件264编码后udp推流
推流:ffmpeg -re -s 352*288 -pix_fmt yuv420p -i bus_cif.yuv -vcodec h264 -f h264 udp://127.0.0.1:1234其中:-re :按时间戳发送-s 352*288 :视频尺寸-pix_fmt yuv420p:格式-i bus_cif.yuv :输入文件名-vcodec h264 :编码方式-...
2019-04-25 16:59:02 1461
原创 Android日志和崩溃信息记录 (Timber,logback,UncaughtExceptionHandler)
在程序开发过程中,需要记录程序运行中的运行日志。同时很多时候,程序运行中可能会遇到种种异常导致崩溃,在使用AndroidStudio调试过程中,可以在logcat中查看这些异常。但是apk安装在用户手机上,就需要程序自己将这些异常进行捕获并记录在日志中,供开发人员后续进行问题排查。一、日志记录1、Timber一个简单的日志类,Timber把一种日志记录方法看做一颗树tree,Ti...
2019-04-15 17:02:10 3832
原创 ONVIF中调用soap_send___wsdd__Probe返回-1问题排查
最近在海思的开发板上调用ONVIF来搜索局域网内的摄像头,发现同样的代码,直接编译运行在板端就可以正常搜索,将代码合到已有的QT代码中,就无法搜索,soap_send___wsdd__Probe返回-1。将板卡多余网口关闭,并且在程序中指定网口IP均不能解决问题。经过两天排查,发现问题出现在stdsoap2.c的fsend函数中,在下述代码中,当程序sendto全局广播包时,返回-1(nwri
2017-04-07 11:17:25 3948
timber+logback+CashHandler
2019-04-16
《C++编程思想》作为正式教材和自学用书均非常优秀,作为程序设计者的参考用书亦极为合适。
2010-10-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人