03 2023 档案
摘要:一、代码分析 在公司项目中,音频解码及播放是把数据传到Java层进行解码播放的,其实这个步骤没有必要,完全可以在底层进行处理。 通过代码发现其实也做了在底层进行解码,那么为啥不直接使用底层解码播放呢,我们可以看看原先代码怎么做的: 代码中通过定义的宏DECODE_AUDIO_IN_JAVA来控制mA
阅读全文
摘要:背景 公司项目中有手机投屏平板,声音默认是在手机端播放,也可以切换到平板上播放,这里使用的是反射android.media.AudioSystem类的setDeviceConnectionState方法实现的,这个在低于Android13的版本是没有问题的,然而到了Android13手机上确出现了问
阅读全文
摘要:介绍 我们在使用Android的硬解进行解码时,如果是Android11以上则可以使用其特性低延迟,谷歌官方文档 以下是Android 11支持的低时延特性: ANGLE支持:Android 11引入了ANGLE(Almost Native Graphics Layer Engine)支持,它是一个
阅读全文
摘要:一 MediaCodec概述 MediaCodec是Android 4.1(api 16)版本引入的低层编解码接口,同时支持音视频的编码和解码。通常与MediaExtractor、MediaMuxer、AudioTrack结合使用,能够编解码诸如H.264、H.265、AAC、3gp等常见的音视频格
阅读全文
摘要:在live555使用NDK21编译出arm64-v8a和armeabi-v7a中我们编译出了v8a和v7a的可执行文件 我们可以使用testH264VideoStreamer程序进行推流 我们将testH264VideoStreamerpush到/data/local目录下(需要有root权限),然
阅读全文
摘要:在GitHub上下载了一个demo,自己编译运行时,v8a的so是可以正常编译运行的,但是就是v7a的不能也一直报错,最后发现在Android.mk文件里去掉-Werror字段就可以了。于是上网了解了一下关于-Werror的意思,这里记录一下 Android源码下编译Native源码采用Androi
阅读全文
摘要:一、编译环境 ubuntu环境 NDK21,下载地址链接 live555源码live555源码 二、编写编译脚本 环境和源码弄好后,就可以开始进行编写编译脚本 1 编写arm64-v8a脚本 将下载好的live555源码的压缩包进行解压后,在根目录下新建一个文件config.android-arm6
阅读全文