gpt4 book ai didi

android - 在android中扩展相机 View ?

转载 作者:行者123 更新时间:2023-11-29 02:12:35 26 4
gpt4 key购买 nike

我在我的应用程序中使用的相机 View 与原生相机不同,例如,原生相机 View 如下所示, enter image description here

但是我的应用程序中的 View 不一样,我使用带有媒体记录器的自定义相机的 surfaceview 来捕获视频,在布局中我使用框架布局,

<com.cdr.Vio.CamcorderView android:id="@+id/camcorder_preview" android:clickable="true" android:focusable="true" android:layout_height="wrap_content" android:layout_width="wrap_content"></com.cdr.Vio.CamcorderView>

....

<Button android:id="@+id/widget34" android:background="@drawable/camrecord"
android:layout_height="60dp" android:layout_width="60dp"
android:layout_gravity="right" android:layout_marginRight="20dp">
</Button>
<Button android:id="@+id/widget33" android:background="@drawable/stoprecord"
android:layout_gravity="right" android:layout_height="60dp"
android:layout_width="60dp" android:layout_marginTop="-60dp"
android:layout_marginRight="20dp">
</Button>

我尝试了具有预定义屏幕高度和屏幕宽度的 View ,但它似乎又拉伸(stretch)了一些,这是我拉伸(stretch)的相机 View , enter image description here

我该如何解决,如果有人知道这个问题可以帮助我。

谢谢。

最佳答案

最后,我通过设置 videEncodingBitRate、AudioEncodingBitRate、AudioSamplingRate 等找到了在 android 2.1 中录制高质量视频的代码。使用此方法,您可以设置视频的任何属性以提供高质量的视频。

要设置高质量和低质量参数,请引用此页面,

http://www.andgps.com/20110410/camcorderprofile-predefined-camcorder-profile-settings-for-camcorder-applications

我使用基本版本 android 2.1 生成高质量视频的代码如下所示。

recorder = new MediaRecorder();
Method[] methods = recorder.getClass().getMethods();

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
recorder.setVideoSource(MediaRecorder.VideoSource.DEFAULT);
recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
recorder.setVideoFrameRate(24);
recorder.setVideoSize(720, 480);

for (Method method : methods) {
try {
if (method.getName().equals("setAudioChannels")) {
method.invoke(recorder, String.format("audio-param-number-of-channels=%d", 1));
} else if (method.getName().equals("setAudioEncodingBitRate")) {
method.invoke(recorder, 12200);
} else if (method.getName().equals("setVideoEncodingBitRate")) {
method.invoke(recorder, 3000000);
} else if (method.getName().equals("setAudioSamplingRate")) {
method.invoke(recorder, 8000);
} else if (method.getName().equals("setVideoFrameRate")) {
method.invoke(recorder, 24);
}
} catch (IllegalArgumentException e) {

e.printStackTrace();
} catch (IllegalAccessException e) {

e.printStackTrace();
} catch (InvocationTargetException e) {

e.printStackTrace();
}
}

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);

关于android - 在android中扩展相机 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6353424/

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