码迷,mamicode.com
首页 > 移动开发 > 详细

手机端的视频录制功能实现

时间:2014-11-27 18:51:57      阅读:220      评论:0      收藏:0      [点我收藏+]

标签:移动互联网   android   音视频开发   视频录制   

移动互联网时代来临,一个崭新的时代开始了。所谓移动互联网就是将移动通信和互联网整合在一起,使移动设备(包括手机和上网本)可以随时随地地访问互联网资源和应用。互联网时代创造了一个经济神话,也造就了很多时代英雄,他们一个个令人仰慕。试想为数亿的手机用户和数亿的网民建立一个共同的平台,使其应用到企业、商业和和农村之间,又会是怎样一个惊天动地的伟业呢?新时代开始了,你愿意输在起跑线上吗?与之Android 相关的应用开发随之而来。先大家阐述一下视频录制详细细节。

 

  如何在自己应用程序中播放一个可用的media音频:

1、将文件放到你的工程的res/raw文件夹中,在这个文件夹中,Eclipse插件将会找到它,同时,会将这个资源与你的R

类相关联起来;

2、创建一个MediaPlayer,并使用MediaPlayer.create与资源相关联起来,之后在实例中使用start()方法。

例如:MediaPlayermp=MediaPlayer.create(context,R.raw.sound_file_1);

mp.start();

如果要想停止播放,使用stop()方法。如果你想稍后重新播放这段media,你必须在再次使用start()方法之前使用

reset()方法和prepare()方法来操作MediaPlayer对象。(create()第一次调用prepare()

如果想暂停播放,可以使用pause()方法。在你暂停的地方恢复播放功能使用start()方法即可实现。

 

播放一个文件

下面介绍如何播放一个文件:

1、用new创建一个MediaPlayer实例;

2、调用setDataSource()方法,这个方法有一个String类型的参数,这个String类型的参数包含了你所要播放的

文件的路径-本地文件系统或者是URL

3、之后,先调用prepare()方法,然后才是start()方法。

例如:

MediaPlayer mp=new MediaPlayer();

mp.setDataSource(PATH_TO_FILE);

mp.prepare();

mp.start();

需要注意的一点是:如果你传递的是一个URL方式的文件,那么这个文件必须是可以下载的,并且是不间断的,简单地

说就是在播放的同时进行着下载。

 

如何录制media音频资源:

1、使用new创建一个实例android.media.MediaRecorder

2、创建一个android.content.ContentValues实例并设置一些标准的属性,像TITLETIMESTAMP,最重要的是MIME_TYPE;

3、创建一个要放置的文件的路径,这可以通过android.content.ContentResolver在内容数据库中来创建一个入

口,并且自动地标志一个取得这个文件的路径。

4、使用MediaRecorder.setAudioSource()方法来设置音频资源;这将会很可能使用到MediaRecorder.AudioSource.MIC;

5、使用MediaRecorder.setOutputFormat()方法设置输出文件格式;

6、用MediaRecorder.setAudioEncoder()方法来设置音频编码;

7、最后,prepare()start()所录制的音频,stop()release()在要结束的时候调用。

 

 这是一个实例:

recorder=new MediaRecorder();

ContentValues values=new ContentValues(3);

values.put(MediaStore.MediaColumns.TITLE,SOME_NAME_HERE);

values.put(MediaStore.MediaColumns.TIMESTAMP,System.currentTimeMillis());

values.put(MediaStore.MediaColumns.MIME_TYPE,recorder.getMimeContentType();

ContentResolver contentResolver=newContentResolver();

Uribase=MediaStore.Audio.INTERNAL_CONTENT_URI;

UrinewUri=contentResolver.insert(base,values); //在所给定的URL中向一个表格插入一列数据

//函数原型:final Uri insert(Url,ContentValues values);

if(newUri==null){

   //这里需要异常处理,我们在这里不能创建一个新的内容入口

}

Stringpath=contentResolver.getDataFilePath(newUri);

//可以使用setPreviewDisplay()来陈列一个preview 来使View适合

recorder.setAudioSource(MediaRecorder.AudioSource.MIC);

recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);

recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);

recorder.setOutputFile(path);

recorder.prepare();

recorder.start();

停止录制:

recorder.stop();

recorder.release();

 

在录制音频资源的过程中,使用到了ContentValues这个类,下面来解说这个类。

ContentValues这个类是用来存储一系列的值的,这些值要求ContentResolver能够process的。

ContentValues(int size)构造函数使用所给定的初始值创建一个空系列的值。

ContentValues(ContentValues from)这个构造函数创建一个从给定的ContentValues中来进行复制所产生的值。

这个类有如下的常用的方法:

void clear()  删除所有的值

boolean containsKey(String key) 如果这个对象有已命名的值就返回真

int describeContents() 描述值类型

Object get(String key) 获得值

void put(String key,Integer value)增加一个值到对应的set

 

   视频录制是Android 视频开发其中之一,视频监控、视频路况等开发都是在Android平台上去实现,今后跨平台的Android市场更是多姿多彩。Android手机当遥控器用,手机连接电视机顶盒。这些绝不是小说里的科幻文字,而是事实。2011年开始,“三网融合”正式被国务院纳入十二五计划并开始实施。国务院十分明确的把三网融合作为全面提高信息化水平的重要手段进行定位,彰显出三网融合在国家战略层面发展不可替代的重要性,也为三网融合在十二五期间的发展提出了明确的方向和目标。在同一的治理平台下,实现音频、视频、数据信号的传输和管理,提供各种宽带应用和传统电信业务,是一个真正实现宽带窄带一体化、有线无线一体化、有源无源一体化、传输接入一体化的综合业务网络。让一根光纤解决看电视、打电话、上网的梦想变为现实。


手机端的视频录制功能实现

标签:移动互联网   android   音视频开发   视频录制   

原文地址:http://yinshipin1.blog.51cto.com/9620924/1583221

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!