VideoView与SurfaceView
来源:互联网 发布:cmd修复网络连接 编辑:程序博客网 时间:2024/05/29 18:05
1.VideoView 播放视频,SurfaceView展示视频,或是照片
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zking.video"> <!--读取内存条的权限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <!--设置照相机的权限--> <uses-permission android:name="android.permission.CAMERA"></uses-permission> <!--创建文件的权限--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <!--写到内存条的权限--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> </activity> <activity android:name=".PhoneActivity" android:screenOrientation="landscape"> <intent-filter> <action android:name="android.intent.action.MAIN"/> <category android:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> </application></manifest>
播放视频:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.zking.video.MainActivity"> <VideoView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/main_videoView"/></LinearLayout>package com.zking.video;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.MediaController;import android.widget.VideoView;public class MainActivity extends AppCompatActivity { private VideoView main_videoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); main_videoView = (VideoView) findViewById(R.id.main_videoView); //设置播放源 main_videoView.setVideoURI(Uri.parse("file://mnt/sdcard/DCIM/Camera/VID20170720090922.mp4")); //播放 MediaController mediaController=new MediaController(this); mediaController.setMediaPlayer(main_videoView); main_videoView.setMediaController(mediaController); }}
拍照<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.zking.video.PhoneActivity"> <SurfaceView android:layout_width="match_parent" android:layout_height="200dp" android:id="@+id/main_surfaceView"/> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/main_button" android:text="拍照"/></LinearLayout>package com.zking.video;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.PixelFormat;import android.hardware.Camera;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.SurfaceHolder;import android.view.SurfaceView;import android.view.View;import android.widget.Button;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Calendar;public class PhoneActivity extends AppCompatActivity { private SurfaceView main_surfaceView; private Camera camera; private Button main_button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_phone); //捕捉镜头 main_surfaceView = (SurfaceView) findViewById(R.id.main_surfaceView); //照相 main_button = (Button) findViewById(R.id.main_button); //回调函数 main_surfaceView.getHolder().addCallback(new SurfaceHolder.Callback() { @Override public void surfaceCreated(SurfaceHolder holder) { //打开摄像头 //打开后置 camera = Camera.open(); //设置参数 Camera.Parameters parameters= camera.getParameters(); //设置照片的格式 parameters.setPictureFormat(PixelFormat.JPEG); //设置照片的质量 parameters.set("jpeg_quality",100); camera.setParameters(parameters); //开启预览效果 camera.startPreview(); try { camera.setPreviewDisplay(main_surfaceView.getHolder()); } catch (IOException e) { e.printStackTrace(); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { } @Override public void surfaceDestroyed(SurfaceHolder holder) { camera.stopPreview(); //释放内存 camera.release(); } }); //拍照 main_button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { camera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { //图片压缩 Bitmap bitmap=BitmapFactory.decodeByteArray(data,0,data.length); //时间戳 Calendar calendar=Calendar.getInstance(); int year=calendar.get(Calendar.YEAR); int month=calendar.get(Calendar.MONTH); int day=calendar.get(Calendar.DAY_OF_MONTH); try { FileOutputStream fileOutputStream=new FileOutputStream("/mnt/sdcard/DCIM/Camera/G160628_"+year+month+day+"_"+System.currentTimeMillis()+".jpg"); bitmap.compress(Bitmap.CompressFormat.JPEG,85,fileOutputStream); camera.stopPreview(); camera.startPreview(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }); } }); }}
阅读全文
0 0
- VideoView与SurfaceView
- VideoView与SurfaceView的使用
- VideoView与SurfaceView的使用
- 视频播放控件SurfaceView与VideoView
- Android 多媒体应用:视频播放之VideoView与SurfaceView
- Android的视频播放之VideoView与SurfaceView
- Android 多媒体应用:视频播放之VideoView与SurfaceView
- surfaceview, videoview,texturalview区别
- Android--VideoView,SurfaceView
- VideoView 和 SurfaceView 实例
- 4.10 VideoView,SurfaceView,MediaPlayer,
- Android学习之 VideoView,SurfaceView
- VideoView和SurfaceView播放视频
- Android学习之 VideoView,SurfaceView
- VideoView和SurfaceView视频播放
- 视频播放器videoview surfaceview
- android之VideoView和SurfaceView
- 用VideoView和SurfaceView播放视频
- Python灰帽子笔记二
- FFMPEG在VS2010中的配置
- JQuery_JQuery对象和DOM对象的区别和转换
- C语言程序案例
- 获取网站源代码 python
- VideoView与SurfaceView
- UVA 572
- 初学Python写的小程序,记录记录!
- HUST
- 配置C++17开发环境的codeblock&&eclipse
- 【POI2011】Tree Rotations(线段树合并)
- Linux下标准缓冲区的清空
- Redis入门
- Linux系统编程-守护进程