草庐IT

android - Android 自动对焦后的视频录制问题

coder 2023-12-25 原文

我正在尝试构建一个应用程序,该应用程序会在开始视频录制之前尝试自动对焦相机。直接使用 MediaRecorder 不会自动对焦相机。为此,我正在使用 Camera 并使用回调我可以自动对焦。但是将此实例提供给 MediaRecorder 给我带来了很多问题。以下是我用来录制的代码

public boolean startRecording()
{
    try
    {
        mCamera.unlock();

        mediaRecorder = new MediaRecorder();
        mediaRecorder.setCamera(mCamera);

        mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
        mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

        CamcorderProfile profile = CamcorderProfile
                .get(CamcorderProfile.QUALITY_LOW);
        mediaRecorder.setProfile(profile);

        mediaRecorder.setMaxDuration(maxDurationInMs);

        File file = new File(outputFile);
        if (file.exists())
            file.delete();
        file = new File(outputFile);

        try
        {
            file.createNewFile();
        }
        catch (IOException e1)
        {
            // TODO Auto-generated catch block
            e1.printStackTrace();
            Log.e("Deepak", "*** first catch ***");
        }


        mediaRecorder.setOutputFile(outputFile);
        mediaRecorder.setPreviewDisplay(mHolder.getSurface());

        mediaRecorder.setMaxFileSize(maxFileSizeInBytes);

        mediaRecorder.prepare();
        mediaRecorder.start();

        return true;
    }
    catch (IllegalStateException e)
    {
        Log.e(TAG, e.getMessage());
        e.printStackTrace();
        return false;
    }
    catch (IOException e)
    {
        Log.e(TAG, e.getMessage());
        e.printStackTrace();
        return false;
    }
}

Camera属性如下:

Camera.Parameters parameters = mCamera.getParameters();
    List<Size> sizeList = parameters.getSupportedPreviewSizes();
    parameters.setPreviewFormat(ImageFormat.JPEG);
    parameters
            .setPreviewSize(sizeList.get(0).width, sizeList.get(0).height);
    mCamera.setParameters(parameters);
    mCamera.startPreview();

所有这一切都给我以下错误信息:

    11-22 16:51:25.314: DEBUG/Preview(4052): !!!!!!!!!!111Starting recording!!!!!!!!!!!!!!
11-22 16:51:25.334: ERROR/audio_input(59): unsupported parameter: x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value
11-22 16:51:25.334: ERROR/audio_input(59): VerifyAndSetParameter failed
11-22 16:51:25.334: ERROR/CameraInput(59): Unsupported parameter(x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value)
11-22 16:51:25.334: ERROR/CameraInput(59): VerifiyAndSetParameter failed on parameter #0
11-22 16:51:25.344: DEBUG/AuthorDriver(59): setParamVideoEncodingBitrate() 256000
11-22 16:51:25.384: INFO/MediaRecorderJNI(4052): prepare: surface=0x222968 (id=1)
11-22 16:51:25.394: ERROR/PVOMXEncNode(59): PVMFOMXEncNode-Video_M4V::DoPrepare(): Got Component OMX.qcom.video.encoder.mpeg4 handle 
11-22 16:51:25.394: WARN/CameraInput(59): refCount 0
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR update_param_port_def::1643 Frame rate is for input port (refer to OMX IL spec)
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR get_parameter::952 unsupported index 0x700000b
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR set_parameter::2720 unsupported index 0x700000b
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR translate_profile::1015 unsupported profile
11-22 16:51:25.394: ERROR/VENC_ENC(59): Bitrate 256000
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR get_parameter::952 unsupported index 0x6000005
11-22 16:51:25.394: ERROR/VENC_ENC(59): VENC_ERROR set_parameter::2720 unsupported index 0x6000005
11-22 16:51:25.394: ERROR/PVOMXEncNode(59): PVMFOMXEncNode-Audio_AMRNB::DoPrepare(): Got Component OMX.PV.amrencnb handle 
11-22 16:51:25.394: DEBUG/CameraInput(59): Intended mFrameWidth=176, mFrameHeight=144 
11-22 16:51:25.404: DEBUG/CameraInput(59): Actual mFrameWidth=176, mFrameHeight=144 
11-22 16:51:25.404: ERROR/VENC_ENC(59): VENC_ERROR ven_translate_config::428 Invalid mp4 configuration 
11-22 16:51:25.424: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone
11-22 16:51:25.424: DEBUG/AudioHardwareQSD(59): Switching audio device to 
11-22 16:51:25.424: DEBUG/AudioHardwareQSD(59): Speakerphone
11-22 16:51:25.454: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.494: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.534: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.554: INFO/AudioHardwareQSD(59): AudioHardware PCM record is going to standby.
11-22 16:51:25.554: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone
11-22 16:51:25.564: INFO/AudioHardwareQSD(59): do input routing device 800000
11-22 16:51:25.564: INFO/AudioHardwareQSD(59): Routing audio to Speakerphone with back mic
11-22 16:51:25.564: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.574: WARN/AudioFlinger(59): write blocked for 143 msecs, 52 delayed writes, thread 0xd7a8
11-22 16:51:25.604: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.644: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.684: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.754: DEBUG/AudioHardwareQSD(59): Switching audio device to 
11-22 16:51:25.754: DEBUG/AudioHardwareQSD(59): Speakerphone
11-22 16:51:25.764: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.814: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.844: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.884: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.924: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:25.964: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:26.004: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:26.044: ERROR/CameraInput(59): Recording is not ready (iPeer 0x3bc14 iState 2 iWriteState 1 iClockState 0), frame dropped
11-22 16:51:28.824: INFO/AudioHardwareQSD(59): AudioHardware pcm playback is going to standby.
11-22 16:51:31.324: DEBUG/Preview(4052): !!!!!!!!!!Stoping recording!!!!!!!!!!!!!!

这会在指定位置创建一个完全模糊的文件,只有一串绿色水平线。

已放置所有权限。使用安卓 2.2。尝试了确切的代码作为 this但仍然有类似的VENC_ERROR

最佳答案

您需要在解锁相机之前停止预览

mCamera.stopPreview();

mCamera.unlock();

关于android - Android 自动对焦后的视频录制问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244999/

有关android - Android 自动对焦后的视频录制问题的更多相关文章

  1. ruby-on-rails - 使用 Ruby on Rails 进行自动化测试 - 最佳实践 - 2

    很好奇,就使用ruby​​onrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提

  2. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  3. ruby - 通过 rvm 升级 ruby​​gems 的问题 - 2

    尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub

  4. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  5. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  6. ruby - RuntimeError(自动加载常量 Apps 多线程时检测到循环依赖 - 2

    我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("

  7. ruby - 安装 Ruby 时遇到问题(无法下载资源 "readline--patch") - 2

    当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub

  8. java - 从 JRuby 调用 Java 类的问题 - 2

    我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www

  9. ruby-on-rails - 简单的 Ruby on Rails 问题——如何将评论附加到用户和文章? - 2

    我意识到这可能是一个非常基本的问题,但我现在已经花了几天时间回过头来解决这个问题,但出于某种原因,Google就是没有帮助我。(我认为部分问题在于我是一个初学者,我不知道该问什么......)我也看过O'Reilly的RubyCookbook和RailsAPI,但我仍然停留在这个问题上.我找到了一些关于多态关系的信息,但它似乎不是我需要的(尽管如果我错了请告诉我)。我正在尝试调整MichaelHartl'stutorial创建一个包含用户、文章和评论的博客应用程序(不使用脚手架)。我希望评论既属于用户又属于文章。我的主要问题是:我不知道如何将当前文章的ID放入评论Controller。

  10. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

随机推荐