多媒体总结

来源:互联网 发布:淘宝代金券最多 编辑:程序博客网 时间:2024/06/14 10:02

1,录音MediaRecorder

2,音乐播放器MediaPlayer

3,访问相册。

4,调用系统相机

5,视频:VideoView



1,录音MediaRecorder

package com.example.mediarecorderdemo01;    import java.io.IOException;    import android.app.Activity;  import android.media.MediaRecorder;  import android.media.MediaRecorder.AudioEncoder;  import android.media.MediaRecorder.AudioSource;  import android.media.MediaRecorder.OutputFormat;  import android.os.Bundle;  import android.os.Environment;  import android.view.View;    public class MainActivity extends Activity {        private MediaRecorder recorder;  //  在任何状态下调用reset都是返回Initial初始状态      @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);  //        声明的时候,状态Initial          recorder = new MediaRecorder();  //          选择收音设备 ,状态Initlized          recorder.setAudioSource(AudioSource.MIC);  //          选择输出设备,一般选择默认default ..状态.DataSourceConfigured          recorder.setOutputFormat(OutputFormat.DEFAULT);  //          选择编码格式      状态:DataSourceConfigured          recorder.setAudioEncoder(AudioEncoder.DEFAULT);  //          选择文件路径  状态:DataSourceConfigured          recorder.setOutputFile(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+"nihao.mp3");  //        进入准备状态,准备播放     状态:prepare          try {              recorder.prepare();          } catch (IllegalStateException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }                }  //   当点击按钮时, 播放      public void start(View v){  //      状态,recording          recorder.start();      }  //    当点击按钮时,暂停      public void stop(View v){  //      状态:Initial。返回初始化          recorder.stop();      }        }  2,清单配置,读取sdk权限,和调用系统录入权限[html] view plaincopy<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>      <uses-permission android:name="android.permission.MOUNT_UNMOUNT_

录音权限:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/>




2,音乐播放器MediaPlayer

import java.io.IOException;    import android.app.Activity;  import android.media.MediaPlayer;  import android.os.Bundle;  import android.os.Environment;  import android.support.v4.app.Fragment;  import android.util.Log;  import android.view.LayoutInflater;  import android.view.View;  import android.view.View.OnClickListener;  import android.view.ViewGroup;  import android.widget.Button;  import android.widget.Toast;    public class MusicFragment extends Fragment implements OnClickListener {        private MainActivity mat;      private Button start;      private Button pause;      private Button stop;      private MediaPlayer media;  //  标记,判断音乐的执行线路      private boolean bstart,bpause,bstop;      @Override      public void onAttach(Activity activity) {          // TODO Auto-generated method stub          super.onAttach(activity);          this.mat = (MainActivity) activity;      }      @Override      public View onCreateView(LayoutInflater inflater, ViewGroup container,              Bundle savedInstanceState) {          // TODO Auto-generated method stub          return inflater.inflate(R.layout.main_music, null);      }      @Override      public void onActivityCreated(Bundle savedInstanceState) {          super.onActivityCreated(savedInstanceState);          initview();  //      初始化音乐步骤          initMusic();          Log.i("gxx", "init");      }      private void initview() {          start = (Button) getView().findViewById(R.id.main_music_start);          pause = (Button) getView().findViewById(R.id.main_music_pause);          stop = (Button) getView().findViewById(R.id.main_music_stop);  //      启动音乐          start.setOnClickListener(this);          pause.setOnClickListener(this);          stop.setOnClickListener(this);      }  //  音乐所有执行步骤      private void initMusic() {  //      初始化音乐类          media = new MediaPlayer();            try {  //      初始化状态              media.setDataSource(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+"dow.mp3");          } catch (IllegalArgumentException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (SecurityException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IllegalStateException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }  //      选择本地音乐播放,进入准备状态          try {              media.prepare();              Log.i("gxx", "prepare---");          } catch (IllegalStateException e) {              // TODO Auto-generated catch block              e.printStackTrace();          } catch (IOException e) {              // TODO Auto-generated catch block              e.printStackTrace();          }      }      @Override      public void onClick(View v) {  //      判断多个按钮实现事件          switch (v.getId()) {              case R.id.main_music_start:                  Log.i("gxx", "播放按钮");  //              判断是停止状态点击播放的时候,置换成准备状态                  if (bstop) {                      try {                          media.prepare();                      } catch (IllegalStateException e) {                          // TODO Auto-generated catch block                          e.printStackTrace();                      } catch (IOException e) {                          // TODO Auto-generated catch block                          e.printStackTrace();                      }                  }  //              播放状态                  media.start();  //              可以明确播放按钮执行                  flagMusic("start");                  break;              case R.id.main_music_pause:                  if (bstop) {                      Toast.makeText(getActivity(), "不能执行的操作", Toast.LENGTH_SHORT).show();                      return;                  }  //              暂停状态                  media.pause();                  flagMusic("pause");                  break;              case R.id.main_music_stop:  //              停止状态                  media.stop();                  flagMusic("stop");                  break;            }                }  //  判断音乐点击开始,播放,停止的线路      public void flagMusic(String str){          if ("start".equals(str)) {              bstart = true;              bpause = false;              bstop = false;          }else if("pause".equals(str)){              bstart = false;              bpause = true;              bstop = false;          }else if ("stop".equals(str)) {              bstart = false;              bpause = false;              bstop = true;          }      }                    }  


3,访问相册。

// 跳转到相册Intent intent = new Intent(Intent.ACTION_GET_CONTENT);intent.setType("image/*");intent.putExtra("return-data", true);// 返回值跳转方式startActivityForResult(intent, REQUEST_CODE);

4,调用系统相机

// 判断SD卡是否存在if (SdcardTools.sdcard()) {//指定图片路径File file = new File(Environment.getExternalStorageDirectory(),IMAGE_FILE_NAME);//image_file_name是图片名startPhotoCompress(Uri.fromFile(file));} else{toast(homeActivity, "找不到存储卡,无法读取照片");}break;

5,视频:VideoView

--Activity中的package com.example.videoviewdemo01;import android.os.Bundle;import android.os.Environment;import android.app.Activity;import android.view.Menu;import android.widget.MediaController;import android.widget.VideoView;public class MainActivity extends Activity {//获取到VideoView对象 private VideoView vv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);//        初始化        vv = (VideoView) findViewById(R.id.main_vv);//        获取指定的路径,这个是本地....网络  vv.setVideoURI(uri)        vv.setVideoPath(Environment.getExternalStorageDirectory().getAbsolutePath()+"/"+"dow.mp3");//        指定控制器        vv.setMediaController(new MediaController(this));//        启动        vv.start();            }}
加权限<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>





0 0
原创粉丝点击