Android录制视频(四)

mainActivity如下:

package c.c;
import android.app.Activity;
import android.content.ContentValues;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
/**
 * Demo描述:
 * 1 利用系统摄像头拍摄视频
 * 2 利用系统控件播放视频
 * 3 修改视频的元数据(比如:视频title)
 *
 * 注意:
 * 在MediaStore中更新元数据时,不会更新视频文件本身的
 * 数据;相反它只是更新在MediaStore中关于该视频的记录
 */
public class MainActivity extends Activity {
	private final static int VIDEO_CAPTURE=9527;
	private Uri mVideoUri;
    private Button mCaptureButton;
    private Button mPlayButton;
    private Button mSaveButton;
    private EditText mEditText;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        init();
    }
    private void init(){
    	mCaptureButton=(Button) findViewById(R.id.capture_Button);
    	mCaptureButton.setOnClickListener(new ButtonClickListenerImpl());
    	mPlayButton=(Button) findViewById(R.id.play_Button);
    	mPlayButton.setEnabled(false);
    	mPlayButton.setOnClickListener(new ButtonClickListenerImpl());
    	mSaveButton=(Button) findViewById(R.id.save_Button);
    	mSaveButton.setOnClickListener(new ButtonClickListenerImpl());
    	mSaveButton.setEnabled(false);
    	mEditText=(EditText) findViewById(R.id.editText);
    	mEditText.setEnabled(false);
    }
    private class ButtonClickListenerImpl implements OnClickListener{
		public void onClick(View v) {
			if (v.getId()==R.id.capture_Button) {
				Intent intent=new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
				startActivityForResult(intent, VIDEO_CAPTURE);
			}
			if (v.getId()==R.id.play_Button) {
				Intent intent=new Intent(Intent.ACTION_VIEW,mVideoUri);
				startActivity(intent);
			}
			if (v.getId()==R.id.save_Button) {
				ContentValues contentValues=new ContentValues(1);
				String title=mEditText.getText().toString();
				contentValues.put(MediaStore.MediaColumns.TITLE, title);
				int result=getContentResolver().update(mVideoUri, contentValues, null, null);
				if (result==1) {
					System.out.println("设置视频名称成功");
				} else {
					System.out.println("设置视频名称失败");
				}
			}   

		}

    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    	super.onActivityResult(requestCode, resultCode, data);
    	if (resultCode==RESULT_OK&&requestCode==VIDEO_CAPTURE) {
    		mVideoUri=data.getData();
    		mPlayButton.setEnabled(true);
    		mSaveButton.setEnabled(true);
    		mEditText.setEnabled(true);
		}
    }

}

main.xml如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/capture_Button"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:text="Video Capture" />

    <Button
        android:id="@+id/play_Button"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:text="Video Play" />
    <EditText
        android:id="@+id/editText"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:hint="video title"
     />
    <Button
        android:id="@+id/save_Button"
        android:layout_width="150dip"
        android:layout_height="wrap_content"
        android:text="save Button" />

</LinearLayout>

 

 

时间: 2024-07-30 06:21:03

Android录制视频(四)的相关文章

android 录制视频是默认为彩信的短视频分辨率只有177x144

问题描述 android 录制视频是默认为彩信的短视频分辨率只有177x144 android 录制视频是默认为彩信的短视频分辨率只有177x144 而且只能录制十几秒 解决方案 不清楚,可能是网络限制,信息有大小控制

Android录制视频(二)

mainActivit如下: package c.c; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.pm.ActivityInfo; import android.media.MediaRecorder; import android.media.MediaRecorder.OnInfoListener; import android.os

Android录制视频(三)

mainActivity如下: package c.c; import java.io.File; import java.io.IOException; import android.app.Activity; import android.content.pm.ActivityInfo; import android.media.MediaRecorder; import android.os.Bundle; import android.os.Environment; import and

Android录制视频(五)

mainActivity如下: package c.c; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.VideoView; impo

Android使用MediaRecorder类进行录制视频_Android

提醒大家使用MediaRecorder录音录像的设置代码步骤一定要按照API指定的顺序来设置,否则报错 步骤为: 1.设置视频源,音频源,即输入源 2.设置输出格式 3.设置音视频的编码格式 一.首先看布局文件,这里有一个SurfaceView,这是一个绘制容器,可以直接从内存或者DMA等硬件接口取得图像数据, <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools=

android-Android 录制视频以流的形式进行传输问题

问题描述 Android 录制视频以流的形式进行传输问题 mediarecorder.setOutputFile(sender.getFileDescriptor()); 这句话,总是出错 .在4.2.2的版本上毫无问题.在5.0以上的系统运行就崩. 下面是代码和贴图. 解决方案 关于sender.getFileDescriptor();这个方法的使用,毫无问题.但是就是会出错. 解决方案二: 可以用file的方式传输呀

android录制和实时-使用MediaRecorder录制视频和实时传输

问题描述 使用MediaRecorder录制视频和实时传输 android开发,我要实现的是:在服务器端使用MediaRecorder录制mp4的视频, 同时要把数据流通过rtsp实时传输到客户端.因为MediaRecorder设置setOutputFile时, 只能选择文件或者localsocket的一种方式输出,请问要怎样才能把MediaRecorder输出的 数据流分成两份,一份用来录制视频,一份用来作流媒体的输入流? 解决方案 http://blog.csdn.net/lvjunwoai

android 调用系统摄像头录制视频后 返回界面时,在界面显示这个视频图像

问题描述 android 调用系统摄像头录制视频后 返回界面时,在界面显示这个视频图像 android 调用系统摄像头录制视频后 返回界面时,在界面显示这个视频图像(显示一个图标也就是控件),点击这个视频图像则播放视频(在这个图标上也就是这个控件),谁能提供下思路?

视频尺寸-Android录制mp4视频限定图像尺寸

问题描述 Android录制mp4视频限定图像尺寸 需要做360*220尺寸的视频,但是目前做不出来这种,只能做360*480的.求助-急 解决方案 这个要根据手机摄像头支持的分辨率去判断吧,能获取手机前后像头支持的分辨率列表,然后设置和你需求最接近的分辨率.并不是所有的分辨率都支持的 解决方案二: 你使用的是什么录制软件呢? 可以试试其它的录制软件,如果还不行,只能考虑自己定制一款. 解决方案三: freeswith 录制 MP4格式视频