多媒体总结
来源:互联网 发布:淘宝代金券最多 编辑:程序博客网 时间: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
- 多媒体总结
- AWT多媒体编程总结
- 多媒体工作难题总结
- 多媒体格式总结整理
- 【多媒体之声音总结】
- android多媒体总结
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- 多媒体
- [刷题]Clone Graph
- 黑马-类名类型 *指针名称 = 【类名 new】和消息机制
- 逆序对数
- [组合]Bzoj1008 越狱[HNOI2008]
- Stanford UFLDL教程 主成分分析(PCA)
- 多媒体总结
- 对Navigation基础的了解
- PortQry
- Android Busybox 下的adb,linux shell命令整理备忘 (2012-03-06 21:41:27)
- ORA-06553: PLS-801: 内部错误 [56319]
- 1012. 数字分类 (20)
- 哈夫曼树与哈夫曼编码
- LeetCode之Longest Palindromic Substring
- ListView设置emptyView的限制