gpt4 book ai didi

android - 从android中的后台服务打开/运行相机

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:41 24 4
gpt4 key购买 nike

想要构建一个在后台保持录音的应用程序,这可能吗?

最佳答案

是的,这很有可能。

创建一个将在某些事件上启动后台服务的 Activity ,或者您也可以使用警报管理器根据您的要求启动和停止服务。

检查一些粗略的代码,这些代码将使用相机开始和停止录制,您可以从后台服务调用它并且可以顺利运行。

    public boolean starMediaRecording(){
Camera.Parameters params = mServiceCamera.getParameters();
mServiceCamera.setParameters(params);
Camera.Parameters p = mServiceCamera.getParameters();

final List<Size> listSize = p.getSupportedPreviewSizes();
Size mPreviewSize = listSize.get(2);
p.setPreviewSize(mPreviewSize.width, mPreviewSize.height);
p.setPreviewFormat(PixelFormat.YCbCr_420_SP);
mServiceCamera.setParameters(p);

try {
mServiceCamera.setPreviewDisplay(mSurfaceHolder);
mServiceCamera.startPreview();
}
catch (IOException e) {
Log.e(TAG, e.getMessage());
e.printStackTrace();
}

mServiceCamera.unlock();

mMediaRecorder = new MediaRecorder();
mMediaRecorder.setCamera(mServiceCamera);
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mMediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.DEFAULT);
mMediaRecorder.setOutputFile("/sdcard/filenamevideo.mp4");
mMediaRecorder.setVideoFrameRate(30);
mMediaRecorder.setVideoSize(mPreviewSize.width, mPreviewSize.height);
mMediaRecorder.setPreviewDisplay(mSurfaceHolder.getSurface());

mMediaRecorder.prepare();
mMediaRecorder.start();

mRecordingStatus = true;

return true;

}

public void stopMediaRecorder() {
mServiceCamera.reconnect();

mMediaRecorder.stop();
mMediaRecorder.reset();

mServiceCamera.stopPreview();
mMediaRecorder.release();

mServiceCamera.release();
mServiceCamera = null;
}
}

这是示例代码,您需要添加自己的逻辑并相应地处理异常。

关于android - 从android中的后台服务打开/运行相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14976614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com