2021.10.23 视频下载和音频提取功能
1.android权限问题
android低级版本的权限在mainfest.xml里可以直接定,但在高版本需要动态申请。 其中android10的网络权限申请有坑。
在Android 版本 targetSdkVersion 29以后 打开AndroidManifest.xml文件 找到<application 标签 在此标签中加一行代码 就可以了 android:requestLegacyExternalStorage=“true” 链接
2.android媒体库更新
在把视频DCIM/Camera文件后图库里不显示,是因为图库里显示的是媒体数据库中的,为了显示,要在添加后让系统进行一次扫描。
private void updateGallery(String filename)
{
MediaScannerConnection.scanFile(this,
new String[] { filename }, null,
new MediaScannerConnection.OnScanCompletedListener() {
public void onScanCompleted(String path, Uri uri) {
Log.i("ExternalStorage", "Scanned " + path + ":");
Log.i("ExternalStorage", "-> uri=" + uri);
}
});
}
链接
3.线程问题
okhttp3要求在线程中运行,此时不能再线程内改变主线程的信息,需要传递消息请使用Handler,此外handler还可以通过方法的参数传递来跨类传信息。
4.音频提取问题
ffmpeg虽然大,但由于是c++的库,需要交叉编译很麻烦,使用android自带的则其支持的类型有限(mp4,3gp),提取时只用Extractor不行,具体看代码https://www.bilibili.com/video/BV1As411a7TP 此外,用他的方法分离后,若使用音乐软件修改信息(名称、歌手等),则会导致音频文件损坏,音乐软件闪退,目前还不知道为什么。
|