日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

android录制视频横向,Android从零开始(26)(设置全屏+横屏、相机拍照、视频录制)(新)...

發(fā)布時(shí)間:2025/4/5 Android 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android录制视频横向,Android从零开始(26)(设置全屏+横屏、相机拍照、视频录制)(新)... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

相機(jī)拍照、視頻錄制相機(jī)拍照

全屏顯示有兩種方式:

在androidManifest.xml里面的application標(biāo)簽下設(shè)置

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"全屏顯示

Java代碼

//指定Activity沒有標(biāo)題(一定要在setContentView之前調(diào)用)

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

//全屏顯示

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,?????????????????WindowManager.LayoutParams.FLAG_FULLSCREEN);

設(shè)置橫屏

在androidManifest.xml里面的activity標(biāo)簽下設(shè)置

android:screenOrientation="landscape"橫屏顯示

相機(jī)代碼

/**?surfaceview的創(chuàng)建是在Activity完全顯示之后,才創(chuàng)建

*?只能使用回調(diào)監(jiān)聽

*?*/

@Override

publicvoidonCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

//指定Activity沒有標(biāo)題(一定要在setContentView之前調(diào)用)

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

//全屏顯示

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);

surfaceview?=?(SurfaceView)?findViewById(R.id.surfaceview);

//?通過holder來設(shè)置surfaceview的參數(shù)

SurfaceHolder?holder?=?surfaceview.getHolder();

//?設(shè)置顯示固定大小

holder.setFixedSize(176,144);

//?不要讓SurfaceView?緩存數(shù)據(jù),直接輸出

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

//保持屏幕的高亮

surfaceview.setKeepScreenOn(true);

//添加Surfaceview的創(chuàng)建監(jiān)聽

holder.addCallback(newMyCallback());

}

privateclassMyCallbackimplementsCallback{

@Override

publicvoidsurfaceCreated(SurfaceHolderholder)?{

//TODO?Auto-generated?method?stub

try{

//得到相機(jī)對(duì)象

camera?=?Camera.open();

//相機(jī)的參數(shù)

Parameters?parameters?=camera.getParameters();

Log.i("i",parameters.flatten());

//設(shè)置預(yù)覽顯示

camera.setPreviewDisplay(holder);

//開始預(yù)覽

camera.startPreview();

}catch(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

@Override

publicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,

intheight)?{

//TODO?Auto-generated?method?stub

}

@Override

publicvoidsurfaceDestroyed(SurfaceHolder?holder)?{

//TODO?Auto-generated?method?stub

if(camera!=null){

camera.release();

camera=?null;

}

}

}

//對(duì)焦都是由硬件直接完成

publicvoidfoucs(View?v){

camera.autoFocus(null);

}

publicvoidtake(View?v){

/**

*shutter,快門

*raw,?相機(jī)捕獲的原始數(shù)據(jù)

*jpeg?相機(jī)處理后的數(shù)據(jù)

*/

camera.takePicture(null,null,?newMyPictureCallback());

}

privateclassMyPictureCallbackimplementsPictureCallback{

@Override

publicvoidonPictureTaken(byte[]?data,Camera?camera)?{

//TODO?Auto-generated?method?stub

try{

File?file?=?newFile(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");

FileOutputStream?fos?=?newFileOutputStream(file);

fos.write(data);

fos.close();

//處理照片的時(shí)候,相機(jī)被占用了。要想重新預(yù)覽,就開始預(yù)覽

camera.startPreview();

}catch(Exception?e)?{

//?TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

}

@Override

protectedvoidonDestroy()?{

//?TODO?Auto-generated?method?stub

super.onDestroy();

}

}

所需權(quán)限:

視頻錄制

publicclassMainActivityextendsActivity{

privateSurfaceView?surfaceview;

privateMediaRecorder?mr;

privateButton?bt_start;

privateButton?bt_stop;

/**Called?when?the?activity?is?first?created.?*/

@Override

publicvoidonCreate(Bundle?savedInstanceState)?{

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

surfaceview?=?(SurfaceView)?findViewById(R.id.surfaceview);

bt_start?=?(Button)?findViewById(R.id.bt_start);

bt_stop?=?(Button)?findViewById(R.id.bt_stop);

SurfaceHolder?holder?=?surfaceview.getHolder();

holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

holder.setFixedSize(176,144);

surfaceview.setKeepScreenOn(true);

}

publicvoidstart(View?v){

try{

mr?=?newMediaRecorder();

mr.reset();

mr.setAudioSource(AudioSource.MIC);

mr.setVideoSource(VideoSource.CAMERA);

mr.setOutputFormat(OutputFormat.THREE_GPP);

mr.setAudioEncoder(AudioEncoder.AMR_NB);

mr.setVideoEncoder(VideoEncoder.H264);

Filefile?=?newFile(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".3gp");

mr.setOutputFile(file.getAbsolutePath());

//設(shè)置預(yù)覽顯示

mr.setPreviewDisplay(surfaceview.getHolder().getSurface());

mr.prepare();

mr.start();

bt_start.setEnabled(false);

bt_stop.setEnabled(true);

}?catch(Exception?e)?{

//TODO?Auto-generated?catch?block

e.printStackTrace();

}

}

publicvoidstop(View?v){

mr.stop();

bt_start.setEnabled(true);

bt_stop.setEnabled(false);

}

@Override

protectedvoidonDestroy()?{

//TODO?Auto-generated?method?stub

super.onDestroy();

if(mr!=null){

mr.release();

mr?=?null;

}

}

}

所需權(quán)限:

課后問題

怎么設(shè)置全屏顯示

全屏顯示有兩種方式:

在androidManifest.xml里面的application標(biāo)簽下設(shè)置

android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen"全屏顯示

Java代碼

//指定Activity沒有標(biāo)題(一定要在setContentView之前調(diào)用)

requestWindowFeature(Window.FEATURE_NO_TITLE);

setContentView(R.layout.main);

//全屏顯示

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,? ?? ?? ?? ?? ???WindowManager.LayoutParams.FLAG_FULLSCREEN);

怎么設(shè)置橫屏顯示

設(shè)置橫屏

在androidManifest.xml里面的activity標(biāo)簽下設(shè)置

android:screenOrientation="landscape"橫屏顯示

Camer在使用的是是否需要權(quán)限

需要

使用哪個(gè)類可以完成視頻的刻錄

MediaRecorder

總結(jié)

以上是生活随笔為你收集整理的android录制视频横向,Android从零开始(26)(设置全屏+横屏、相机拍照、视频录制)(新)...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。