Goolgle Android OS 2.0版本开始提供照相API功能,可以开发控制照相功能,更在Android OS 2.3版本支持多个相机功能,让相机应用程序可以选择和配置相机。简要介绍拍照、录像和音频。

1. 拍照

 1 package cn.eoe.system.camera; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.graphics.Bitmap; 6 import android.os.Bundle; 7 import android.provider.MediaStore; 8 import android.view.View; 9 import android.view.View.OnClickListener;10 import android.widget.Button;11 import android.widget.ImageView;12 13 public class Main extends Activity implements OnClickListener {14     private ImageView imageView;15 16     @Override17     public void onCreate(Bundle savedInstanceState) {18         super.onCreate(savedInstanceState);19         setContentView(R.layout.main);20 21         Button btnTakePicture = (Button) findViewById(R.id.btnTakePicture);22         btnTakePicture.setOnClickListener(this);23 24         imageView = (ImageView) findViewById(R.id.imageview);25 26     }27 28     protected void onActivityResult(int requestCode, int resultCode, Intent data) {29         if (requestCode == 1) {30             // 点了拍照按钮,是一个小的对号。31             if (resultCode == Activity.RESULT_OK) {32                 // 获得图像的字节流33                 Bitmap cameraBitmap = (Bitmap) data.getExtras().get("data");34                 imageView.setImageBitmap(cameraBitmap);35 36             }37         }38     }39 40     // 窗口返回,所以使用startActivityForResult41     public void onClick(View view) {42         Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);43         startActivityForResult(intent, 1);44     }45 46 }
Main

2. 录像

 1 package cn.eoe.record.video; 2  3 import android.app.Activity; 4 import android.content.Intent; 5 import android.database.Cursor; 6 import android.net.Uri; 7 import android.os.Bundle; 8 import android.provider.MediaStore; 9 import android.view.View;10 import android.view.View.OnClickListener;11 import android.widget.Button;12 import android.widget.MediaController;13 import android.widget.VideoView;14 15 public class Main extends Activity implements OnClickListener {16     public VideoView videoView;17 18     @Override19     public void onCreate(Bundle savedInstanceState) {20         super.onCreate(savedInstanceState);21         setContentView(R.layout.main);22         Button btnTakePicture = (Button) findViewById(R.id.btnTakePicture);23         btnTakePicture.setOnClickListener(this);24 25         videoView = (VideoView) findViewById(R.id.videoview);26 27     }28 29     protected void onActivityResult(int requestCode, int resultCode, Intent data) {30         if (requestCode == 1) {31             if (resultCode == Activity.RESULT_OK) {32                 // 视频比较大,不可能放在Intent里面。视频的路径存在系统数据库里面,返回了一个URI33                 // 通过URI找到视频存放路径34                 Uri uri = data.getData();35                 Cursor cursor = this.getContentResolver().query(uri, null,36                         null, null, null);37 38                 if (cursor.moveToFirst()) {39                     String videoPath = cursor.getString(cursor40                             .getColumnIndex("_data"));41                     videoView.setVideoURI(Uri.parse(videoPath));42                     videoView.setMediaController(new MediaController(this));43                     videoView.start();44                 }45             }46         }47     }48 49     public void onClick(View view) {50         Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);51         startActivityForResult(intent, 1);52 53     }54 }
Main

3. 音频

 1 package cn.eoe.play.music; 2  3 import android.app.Activity; 4 import android.media.MediaPlayer; 5 import android.media.MediaPlayer.OnCompletionListener; 6 import android.os.Bundle; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.Button;10 11 public class Main extends Activity implements OnClickListener,12         OnCompletionListener {13     private MediaPlayer mediaPlayer;14     private Button btnPause;15 16     @Override17     public void onCreate(Bundle savedInstanceState) {18         super.onCreate(savedInstanceState);19         setContentView(R.layout.main);20 21         Button btnStart1 = (Button) findViewById(R.id.btnStart1);22         Button btnStart2 = (Button) findViewById(R.id.btnStart2);23 24         Button btnStop = (Button) findViewById(R.id.btnStop);25 26         btnPause = (Button) findViewById(R.id.btnPause);27 28         btnStart1.setOnClickListener(this);29         btnStart2.setOnClickListener(this);30         btnStop.setOnClickListener(this);31         btnPause.setOnClickListener(this);32 33     }34 35     public void onCompletion(MediaPlayer mp) {36         mp.release();37         setTitle("资源已经释放");38 39     }40 41     public void onClick(View view) {42         try {43             switch (view.getId()) {44             case R.id.btnStart1: // 播放音频资源45                 mediaPlayer = MediaPlayer.create(this, R.raw.music);46                 mediaPlayer.setOnCompletionListener(this);47 48                 mediaPlayer.start();49                 break;50                 51             case R.id.btnStart2:// 播放SD卡上的音频文件(/sdcard/music.mp3)52                 mediaPlayer = new MediaPlayer();53                 mediaPlayer.setDataSource("/sdcard/music.mp3");54 55                 mediaPlayer.prepare();56                 mediaPlayer.start();57                 break;58 59             case R.id.btnStop:60                 if (mediaPlayer != null) {61                     if (mediaPlayer.isPlaying())62                         mediaPlayer.stop();63                 }64                 break;65 66             case R.id.btnPause:67                 if (mediaPlayer != null) {68                     if ("播放".equals(btnPause.getText().toString())) {69                         mediaPlayer.start();70                         btnPause.setText("暂停");71 72                     } else if ("暂停".equals(btnPause.getText().toString())) {73                         mediaPlayer.pause();74                         btnPause.setText("播放");75                     }76                 }77                 break;78                 79             default:80                 break;81             }82         } catch (Exception e) {83             // TODO: handle exception84         }85     }86 }
Main

更多相关文章

  1. android音乐播放器开发 SweetMusicPlayer 加载歌曲列表
  2. 【Android(安卓)声音处理】MediaPlayer和SoundPool
  3. 【Android(安卓)Developers Training】 45. 控制音频焦点
  4. Android自带音乐播放器专辑图片相同的问题
  5. MediaStore.ACTION_IMAGE_CAPTURE注意事项
  6. Android(安卓)- Android(安卓)7.0 拍照,相册选择和系统图片裁剪和
  7. android播放器(music player)源码分析3(页面解析,ArrayListCursor)
  8. 使用Vitamio打造自己的Android万能播放器(2)—— 手势控制亮度、音
  9. Unity3d中MicroPhone的使用

随机推荐

  1. 完整的二进制安装Kubernetes高可用集群
  2. MySQL工作常用命令
  3. 自动化测试用例失败继续执行
  4. 干货--MySQL工作常用Select命令
  5. Playbook分发Nginx配置文件
  6. 软件测试和开发比例
  7. 自学软件测试 - 自动化测试篇
  8. Mysql二进制日志binlog命令
  9. ansible条件判断和循环
  10. 2021-03-12:go中,如何确定有没有内存泄露,系