在Anroid 8设备上,我将h264+aac流组合成mp4,所以我使用MediaMuxer,但是我使用FileDescriptor创建一个文件,logcat显示如下:
Fail to get File Status Flags err: Bad file descriptor
System.err: java.lang.IllegalArgumentException: Invalid file descriptor
System.err: at android.media.MediaMuxer.nativeSetup(Native Method)
System.err: at android.media.MediaMuxer.setUpMediaMuxer(MediaMuxer.java:359)
System.err: at android.media.MediaMuxer.<init>(MediaMuxer.java:351)这是我的密码:
mMediaMuxer = new MediaMuxer(createFileDescriptor(context, destFile), MediaMuxer.OutputFormat.MUXER_OUTPUT_MPEG_4);
........
public static FileDescriptor getFileDescriptor(Context context, File destFile) {
FileDescriptor fd = null;
try {
DocumentFile file = DocumentsUtils.getDocumentFile(destFile, false, context);
if (file != null && file.canWrite()) {
ParcelFileDescriptor out = context.getContentResolver().openFileDescriptor(file.getUri(), "rw");
fd = out.getFileDescriptor();
}
} catch (Exception e) {
e.printStackTrace();
}
return fd;
}我用了这么多方法,但还是不能解决这个问题,有谁知道怎么解决吗?谢谢..。
发布于 2022-01-21 07:15:49
顺便说一下,我在SD路径上录制了视频,logcat显示了“无效的文件描述符”,这个问题仍然混淆了me= =
奇怪的是,它可以在内部路径上写入文件……
https://stackoverflow.com/questions/70766570
复制相似问题