1. 播放音频
使用MediaPlayer
类播放音频:
MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.my_audio_file);
mediaPlayer.start(); // 开始播放
2. 录制音频
使用MediaRecorder
类录制音频:
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile("/path/to/your/file.mp4");
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start(); // 开始录制
3. 播放视频
使用VideoView
播放视频:
<!-- 在布局文件中添加 VideoView -->
<VideoView
android:id="@+id/videoView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
// 在Activity中设置视频源并播放
VideoView videoView = (VideoView) findViewById(R.id.videoView);
videoView.setVideoPath("/path/to/your/video.mp4");
videoView.start(); // 开始播放
4. 录制视频
结合MediaRecorder
和Camera
录制视频:
Camera camera = Camera.open(); // 获取摄像头
Camera.Parameters params = camera.getParameters();
params.setRecordingHint(true); // 设置录制提示
camera.setParameters(params);
MediaRecorder mediaRecorder = new MediaRecorder();
mediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
mediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);
mediaRecorder.setOutputFile("/path/to/your/file.mp4");
mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
try {
mediaRecorder.prepare();
} catch (IOException e) {
e.printStackTrace();
}
mediaRecorder.start(); // 开始录制
// 录制完成后记得释放资源
mediaRecorder.stop();
mediaRecorder.release();
camera.release();
5. 实时音视频通信
使用WebRTC或类似的库进行实时音视频通信:
// 这是一个WebRTC的简化示例,实际使用会更复杂
PeerConnectionFactory factory = ...; // 初始化工厂
PeerConnection peerConnection = ...; // 创建PeerConnection
MediaStream stream = factory.createLocalMediaStream("ARDAMS");
// 添加本地音视频轨道
stream.addTrack(localAudioTrack);
stream.addTrack(localVideoTrack);
// 添加远程音视频轨道
peerConnection.addStream(stream);
// 创建offer或answer
peerConnection.createOffer(...); // 或者 createAnswer(...)