zoukankan      html  css  js  c++  java
  • 13_拍照、录像和音频

      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     @Override
    17     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     // 窗口返回,所以使用startActivityForResult
    41     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     @Override
    19     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里面。视频的路径存在系统数据库里面,返回了一个URI
    33                 // 通过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(cursor
    40                             .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     @Override
    17     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 exception
    84         }
    85     }
    86 }
    Main

     

     

  • 相关阅读:
    浅谈FastJson的TypeReference用法
    勾选表中的行数据,点击添加,添加到另一个表中(二)
    获取表单内的所有元素的值 表单格式化插件jquery.serializeJSON
    基于BootStrap的Collapse折叠(包含回显展开折叠的对应状态)
    删除按钮和单条删除合并
    前台校验是否为空
    浅谈js的join()方法
    select前台转义后台取到的值为对应的文本 select同时接受list和map
    SpringBoot图片上传(二)
    给div拼接html 拼接字符串
  • 原文地址:https://www.cnblogs.com/510602159-Yano/p/4065453.html
Copyright © 2011-2022 走看看