- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我刚得到一个 Nexus 7,我正在尝试将一些代码移植到其中。以下行在运行 Ice Cream 的 Xoom 上没有问题:
mCamera.startPreview();
它在 Nexus 7 上也能正常工作,但会记录错误:
E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoMode(NvxComponent*, NvOmxCameraUserStereoMode&): Error: invalid NVX mode 0.
E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoModeAndCaptureInfo(NvxComponent*, NvOmxCameraUserStereoMode&, NVX_STEREOCAPTUREINFO&): getCameraStereoMode failed with 0x00000000
这是一个问题,因为当我执行该行时,它还会每帧记录一次这些错误
mCamera.takePicture(null, null, null, pictureCallback);
由于我每秒拍摄 10 帧,这让我很不安,所以我想修复错误。我已经浏览了所有来源(android sdk 和 ndk),并且上述错误的文本没有出现在任何地方。我从大量谷歌搜索中相信,这发生在 Nvidia 的 OpenMax 实现中,它似乎与参数“nv-stereo-mode”相关,该参数可能值为“left”、“right”或“stereo” (Nexus 7 只有一个摄像头,所以我不知道为什么它会关心立体摄像头模式,但无论如何)。我尝试将其设置为每个合法值,例如:
mParams = mCamera.getParameters();
mParams.set("nv-stereo-mode", "right");
mCamera.setParameters(mParams);
但是,我的日志说:
E/NvOmxCameraSettingsParser( 126): Skipping non-standard parameter: nv-stereo-mode
这似乎与源文件 nvomxcamerasettingsparser.cpp 有关,我在网络上的任何地方都找不到。我真的不知道从哪里开始,我已经搜索并搜索了所有我能想到的东西,所以任何帮助都会非常感激。
最佳答案
Try below code for you issue. I hope it will works fine.
import java.io.File;
import java.io.IOException;
import android.app.Activity;
import android.content.Intent;
import android.hardware.Camera;
import android.media.CamcorderProfile;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.os.Environment;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Record extends Activity implements SurfaceHolder.Callback,
MediaRecorder.OnInfoListener {
Button myButton;
MediaRecorder mediaRecorder;
SurfaceHolder surfaceHolder;
boolean recording;
Camera camera;
int mCount;
TextView msg;
boolean rec = false;
String fileName = "DamageVideo.mp4";
CountDownTimer timer;
/** Called when the activity is first created. */
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
recording = false;
mediaRecorder = new MediaRecorder();
initMediaRecorder();
setContentView(R.layout.record_view);
SurfaceView myVideoView = (SurfaceView) findViewById(R.id.videoview);
surfaceHolder = myVideoView.getHolder();
surfaceHolder.addCallback(this);
surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
myButton = (Button) findViewById(R.id.mybutton);
msg = (TextView) findViewById(R.id.txttimer);
myButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
myButton.setVisibility(View.GONE);
myButton.setClickable(false);
try {
if (recording) {
recording = false;
myButton.setClickable(true);
myButton.setVisibility(View.VISIBLE);
Intent intent = new Intent();
setResult(100, intent);
finish();
overridePendingTransition(R.anim.trans_right_in,
R.anim.trans_right_out);
mediaRecorder.stop();
mediaRecorder.release();
moveFile();
} else {
recording = true;
camera.stopPreview();
camera.release();
// myButton.setVisibility(View.GONE);
timer.start();
// myButton.setClickable(false);
mediaRecorder.start();
new CountDownTimer(21000, 1000) {
public void onTick(long millisUntilFinished) {
msg.setText(+(22000 - (millisUntilFinished - 0))
/ 1000 + "/20");
}
public void onFinish() {
// msg.setText("10/10");
}
}.start();
myButton.setText("STOP");
// camera.release();
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}
});
timer = new CountDownTimer(1000, 1000) {
public void onTick(long millisUntilFinished) {
}
public void onFinish() {
myButton.setVisibility(View.VISIBLE);
myButton.setClickable(true);
}
};
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder arg0) {
// TODO Auto-generated method stub
try {
prepareMediaRecorder();
camera = Camera.open();
try {
camera.setPreviewDisplay(surfaceHolder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
camera.startPreview();
} catch (Exception e) {
// TODO: handle exception
}
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
// TODO Auto-generated method stub
}
private void initMediaRecorder() {
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
CamcorderProfile camcorderProfile_HQ = CamcorderProfile
.get(CamcorderProfile.QUALITY_HIGH);
mediaRecorder.setProfile(camcorderProfile_HQ);
// mediaRecorder.setVideoFrameRate(30);
// File dir = Const.getFilePath();
File dir = Environment.getExternalStorageDirectory();
// String fname = "DamageVideo.mp4";
mediaRecorder.setOutputFile(dir.getAbsolutePath() + "/" + fileName);
mediaRecorder.setMaxDuration(20000); // Set max duration 60 sec.
mediaRecorder.setOnInfoListener(this);
}
private void prepareMediaRecorder() {
mediaRecorder.setPreviewDisplay(surfaceHolder.getSurface());
try {
mediaRecorder.prepare();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void onInfo(MediaRecorder mr, int what, int extra) {
// TODO Auto-generated method stub
if (what == MediaRecorder.MEDIA_RECORDER_INFO_MAX_DURATION_REACHED) {
// mr.stop();
// mr.release();
recording = false;
mediaRecorder.stop();
Intent intent = new Intent();
setResult(100, intent);
finish();
overridePendingTransition(R.anim.trans_right_in,
R.anim.trans_right_out);
mediaRecorder.release();
moveFile();
}
}
@Override
public void onBackPressed() {
super.onBackPressed();
try {
if (!recording) {
File dir = Environment.getExternalStorageDirectory();
File imgFile = new File(dir.getAbsolutePath(), fileName);
if (imgFile.exists()) {
imgFile.delete();
}
camera.stopPreview();
camera.release();
} else {
mediaRecorder.stop();
mediaRecorder.release();
moveFile();
}
recording = false;
Intent intent = new Intent();
setResult(100, intent);
finish();
overridePendingTransition(R.anim.trans_right_in,
R.anim.trans_right_out);
} catch (Exception e) {
// TODO: handle exception
}
}
public void moveFile() {
File temp = Environment.getExternalStorageDirectory();
File from = new File(temp.getAbsolutePath(), fileName);
File dir = Const.getFilePath(Record.this);
File to = new File(dir.getAbsolutePath(), fileName);
from.renameTo(to);
}
@Override
public void onResume() {
super.onResume();
}
}
// xml file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<SurfaceView
android:id="@+id/videoview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1" />
<Button
android:id="@+id/mybutton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="5dp"
android:background="#55A5D8"
android:padding="5dp"
android:text="REC"
android:textColor="#ffffff"
android:textSize="20sp" />
<TextView
android:id="@+id/txttimer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:text=""
android:textColor="#55A5D8"
android:textSize="20sp"
android:textStyle="bold" />
</RelativeLayout>
关于安卓 Nexus 7 果冻 bean : startPreview/takePicture calling getCameraStereoMode logs an error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11874273/
有什么区别 和 您能解释一下这两者之间有什么区别吗? 最佳答案 它是一个 XML 命名空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别。 XML Namespaces 关于java -
我刚刚浏览了两个 Web 应用程序,在两个项目的“applicationContext.xml”文件中都有一个标记 ... 另一个是 ... 谁能给我解释一下有什么区别吗? 最佳答案 没有语
我一直在尝试了解 WebSphere Commerce 中的 Java bean,但我真的很困惑。请帮帮我。我需要知道: What is the difference between EntityBe
自从我们更新到 grails 2.0.1(从 2.0.0 开始)以来,通过 bean 字段显示的所有 bean 都错误地显示为“withBean”字段的第一个属性。在我下面发布的示例中,所有 [fir
我有一个 bean,我将另一个 beanlist 放入其中,并且我想访问该内部 bean。 我的第一个 Bean 是: public class FirstDTO { private String F
我正在尝试将 CSS 和 JS 添加到 spring MVC 项目中的 JSP 页面,以便我在 dispatcher-servlet.xml 中包含了 js/css 文件夹的引用,如下所示:
当我将请求传递给 RestController 时,出现以下错误。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreExcept
我看到很多示例将 bean 标记为实体 bean (@Entity) 和命名 bean (CDI),以避免创建 2 个类(托管 bean 和实体 bean)并利用 Bean 验证以便可以执行验证在客户
在我的理解中, session 总是意味着有状态。考虑 servlet session 对象, 想想 cookie。如果 session 是无状态的,我认为我们根本不需要 session 。 在jee
我完全是Spring框架的初学者。我当时正在玩一个创建对象实例的示例。因此需要您的帮助! 看看这个例子: MainApp.java: import org.springframework.contex
这个问题在这里已经有了答案: What is a JavaBean exactly? (23 个回答) 关闭 7 年前。 我已经阅读了有关 EJB、Java Beans 的内容,但是我仍然对“bea
我刚开始使用 Spring-Framework,实际上我正在使用 spring-boot 库。我有以下问题: 我知道在 @Configuration 类中使用 @Bean 注册的 bean 默认是单例
我对下面提到的场景中使用Spring Framework时会创建的实例数量有疑问: bean配置是这样的 or 默认情况下,bean "a"有 singleton scope .所以
在我的 Spring-Module.xml 中,我有两个 bean: ... ... 我像这样实例化我的类: Applicat
@Autowired private Map departments; 我的 spring 配置文件 只要使用 @Autowired 需要日期,它就可以正常工作 同样, 如何使用没有属性
我已经为 ComboBox 设置了 ContainerDataSource this.comboBox.setContainerDataSource(container)。这个容器是一个 BeanIt
为了支持流畅的编程风格,我最近修改了我们的 Java Beans setter 方法以返回 Bean 类。但是现在 Java Beans Activation Framework (rel 1.1)
有人可以告诉我在我的 ApplicationContext 中我必须使用 beans:bean 而不是 bean 的什么以及如何修复它。
我有如下配置: batch:job id="reconciliationJob" job-repository="jobRepository" restartable="true" 在应用程序上下文启
我已经为 Test_flow 创建了简单的测试套件,但是当我尝试运行该流程时出现错误。 java.lang.RuntimeException: org.mule.api.config.Configur
我是一名优秀的程序员,十分优秀!