[Android]为什么我们仍然可以使用MediaRecorder的setOutputFile(String path)?

时间:2014-05-08 01:19:17

标签: android android-source android-mediarecorder stagefright

我正在尝试提取MediaRecorder的muxer部分,所以我现在正在学习Android 4.2.2的源代码,无论如何,这并不重要。 我在这里有一个问题。它约为setOutputFile(String path)的{​​{1}}。

MediaRecorder.java的通话后果是

MediaRecorder.java

但在MediaRecorder.java +- android_media_MediaRecorder.cpp +- MediaRecorder.cpp +- MediaPlayerService.cpp +- MediaRecorderClient.cpp +- StagefrightRecorder.cpp 中,它说

StagefrightRecorder.cpp

那么我们如何继续使用status_t StagefrightRecorder::setOutputFile(const char *path) { ALOGE("setOutputFile(const char*) must not be called"); // We don't actually support this at all, as the media_server process // no longer has permissions to create files. return -EPERM; } 的{​​{1}}?我真的不明白。

1 个答案:

答案 0 :(得分:3)

MediaRecorder.java中,setOutputFileJava图层处理,没有相应的原生实现。在Java实施中,path is stored into mPath

调用prepare时,可以从此实现中观察到File Descriptor File Descriptor。此方法即接受MediaRecorderTest.java由本机实现支持,因此生成输出并存储到文件系统中。

因此,在诸如MediaRecorder的示例中,可以观察到string对象已使用{{1}}初始化输出文件路径。