手机媒体应用
SoundPool:播放提示音
MediaRecorder:录音
VideoView:播放视频
SurcefaceView:播放视频
MediaStore:本地相机
MySoundPool:播放提示音
提示音文件保存在res目录下的raw文件夹中(res——右键——新建Directory,命名为raw,将outgoing.ogg保存在raw文件夹下)
MainActivity:
public class MainActivity extends Activity {
private Button mButotnVoice;
private SoundPool pool=null;
private int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButotnVoice= (Button) findViewById(R.id.buton_voice);
initSoundPool();
mButotnVoice.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
playSound();
}
});
}
private int initSoundPool() {
pool=new SoundPool(2, AudioManager.STREAM_MUSIC,0);
id= pool.load(getApplicationContext(),R.raw.outgoing,1);
return id;
}
public void playSound(){
pool.play(id,1,1,0,-1,1);
}
}
如果API版本大于等于21:
MyMediaRecord:录音
权限:
<uses-permission android:name="android.permission.RECORD_AUDIO"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
MainActivity:
public class MainActivity extends Activity implements View.OnClickListener{
private Button mButtonStartRecord;
private Button mButtonStopRecord;
private MediaRecorder mMediaRecorder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonStartRecord= (Button) findViewById(R.id.button_start_record);
mButtonStopRecord= (Button) findViewById(R.id.button_stop_record);
mButtonStartRecord.setOnClickListener(this);
mButtonStopRecord.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.button_start_record:
mMediaRecorder=new MediaRecorder();
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mMediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mMediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);
mMediaRecorder.setOutputFile(Environment.getExternalStorageDirectory() + "/myrecord.3gp");//写文件,文件名(直接位于sd卡下)
try {
mMediaRecorder.prepare();
mMediaRecorder.start();
} catch (IOException e) {
e.printStackTrace();
}
break;
case R.id.button_stop_record:
mMediaRecorder.stop();
mMediaRecorder.reset();
mMediaRecorder.release();//回收
break;
}
}
}
MyPlayVideo:播放视频
MainActivity:
权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
public class MainActivity extends Activity {
private Button mButtonPlay;
private VideoView mVideoView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonPlay= (Button) findViewById(R.id.button_play);
mVideoView= (VideoView) findViewById(R.id.videoview);
mButtonPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mVideoView.setVideoPath(Environment.getExternalStorageDirectory()+"/q.3gp");
mVideoView.setMediaController(new MediaController(MainActivity.this));
mVideoView.start();
}
});
}
}
MyMediaPlayerSurfaceView:播放视频
权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
MainActivity:
public class MainActivity extends Activity {
private Button mButtonStart;
private SurfaceView mSurfaceView;
private MediaPlayer player;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mButtonStart= (Button) findViewById(R.id.button_start);
mSurfaceView= (SurfaceView) findViewById(R.id.surfaceview);
mButtonStart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(player==null){
player=new MediaPlayer();
}
player.reset();
try {
player.setDataSource(Environment.getExternalStorageDirectory()+"/q.3gp");
player.setAudioStreamType(AudioManager.STREAM_MUSIC);
player.setDisplay(mSurfaceView.getHolder());
player.prepare();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer mediaPlayer) {
mediaPlayer.start();
}
});
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
MyCamera:本地相机
权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
MainActivity:
public class MainActivity extends Activity {
private ImageView mImageView;
private Button mButton;
private File file;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView= (ImageView) findViewById(R.id.img);
mButton= (Button) findViewById(R.id.button_camera);
mButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent=new Intent();
intent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
file=new File(Environment.getExternalStorageDirectory(),System.currentTimeMillis()+".jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent,0x12);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==0x12){
if(resultCode==RESULT_OK){
mImageView.setImageURI(Uri.fromFile(file));
}
}
}
}