android - 在服务中录制视频

标签 android

是否可以在不设置 setPreviewDisplay 的情况下在服务中录制视频? 我在 HTC Desire 上试过,但它在日志中抛出此信息,

MediaRecorder 准备失败:-1

CameraInput 没有可供显示的表面

是否需要设置一些额外的属性?

最佳答案

我在某处找到了这段代码。不确定它是否适用于媒体记录器,但它在 HTC hero android 2.1-update1(和模拟器)上的 camera.takePicture 工作得相当好。

if (camera == null) {
    Log.i(TAG, "Opening camera");
    camera = Camera.open();
}

SurfaceView view = new SurfaceView(new DummyContext()); //You'll have to create your own class extending Context
camera.setPreviewDisplay(view.getHolder());
camera.startPreview();

//wait
Log.i(TAG, "Wait for cam");
    try {
    Thread.sleep(2000);
} catch (InterruptedException e) {
    Log.e(TAG, "Woken violently");
    e.printStackTrace();
}

//take pic
Log.i(TAG, "Take pic");
camera.takePicture(shutterCallback, rawCallback, jpegCallback); 

关于android - 在服务中录制视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971561/

相关文章:

android - 更改 MediaFormat 中的旋转

android - 在同一项目中支持3.0及以下级别

java - 中心 ImageView

android - 我可以在为 kindle fire 商店发布的应用程序中使用谷歌分析吗?

java - MPAndroidChart 折线图 添加数据时回调

Android NDK 构建问题

android - 使用 sw-600dp 布局的最小屏幕尺寸是多少?

java - renderscript可以在jni代码中使用吗?

android - 如何在 ListView 中添加子项

java - 如何从线程调用 UIThread 上的方法?