【发布时间】:2017-11-23 16:12:01
【问题描述】:
我在一个项目上使用 FFmpegAndroid 库(基于 C)来压缩编码一些视频。
该库需要使用android.permission.ACCESS_COARSE_LOCATION 权限。
如果我删除它,压缩会失败,但我没有得到关于 lib 需要权限的其他详细信息。
shell命令是:
[/data/user/0/app_package/files/ffmpeg, -y, -i, /storage/emulated/0/WhatsApp/Media/WhatsApp Video/VIdidi.mp4, -async, 1, -c:v, libx264, -profile:v, high, -preset, ultrafast, -b:v, 1400k, -maxrate, 1400k, -r, 30, -vf, scale=-1:960, /storage/emulated/0/appname/out.mp4]
有谁知道这个是干什么用的?因为我不希望我的用户在没有清楚了解使用情况的情况下被要求获得许可。
【问题讨论】:
-
这没什么意义,因为
ffmpeg在没有识别设备位置概念的平台上工作得很好。 -
@CommonsWare 实际上是一个更奇怪的错误,如果我有使用功能作为权限。如果我删除权限或使用权限,它不会失败。但是放置 uses-feature 会导致错误。
-
“我有使用功能作为权限”——我不知道这是什么意思,抱歉。
-
我的意思是,我在清单中包含
<uses-feature />而不是<uses-permission>:<uses-feature android:name="android.permission.ACCESS_COARSE_LOCATION" android:required="false" /> -
您使用的是安卓系统功能。因此,您需要调用使用权限而不是功能。在 Nougat 中,当您启动应用程序时会询问所有权限。
标签: android ffmpeg compression android-permissions video-compression