android 之MediaPlayer MP3播放,VideoView 视频播放,MediaRecorder 录音
1》MeidaPlayer播放指定路径下的MP3文件;
2》MeidaPlayer播放网络上的MP3文件;
3》VideoView 视频播放;
4》MediaRecorder 录音;
1》MeidaPlayer播放指定路径下的MP3文件;
MediaPlayer mp=new MediaPlayer();
mp.setDataSource("path");
mp.prepare();
mp.start();
mp.isLooping;
mp.pause();
mp.reset();
mp.release();
MediaPlayer mp=new MediaPlayer();
mp=MediaPlayer.create(demomdplayer01.this,R.Raw.test); //res/Raw/test.mp3
mp.prepare();
mp.start();
2》MeidaPlayer播放网络上的MP3文件;
MediaPlayer mp=new MediaPlayer();
Uri uri=Uri.parse(www.cnblogs.com/team/ShenzhenAndroidClub/android.mp3);
mp=MediaPlayer.create(demomdplayer01.this,uri);
mp.prepare();
mp.start();
3》VideoView 视频播放
VideoView mvd=new VideoView();
mvd.setVideopath("path");//这两种方法都可以 mvd.setVideoPath("file:///sdcard/love_480320.mp4");
"/sdcard/love_480320.mp4"
));
//定义MediaController对象
MediaController mediaController = new MediaController(this);
//把MediaController对象绑定到VideoView上
mediaController.setAnchorView(mvd);
//设置VideoView的控制器是mediaController
mvd..setMediaController(mediaController);
mvd.requestFocus();
mvd.start();
mvd.pause();
4> MediaRecorder 录音;
MediaRecorder mr = new MediaRecorder();
mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
mr.setOutputFile(file.getAbsolutePath());
mr.prepare();
mr.start();
mr.stop();
mr.release();
// 创建录音对象
MediaRecorder mr = new MediaRecorder();
// 从麦克风源进行录音
mr.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
// 设置输出格式
mr.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
// 设置编码格式
mr.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);
// 设置输出文件
mr.setOutputFile(file.getAbsolutePath());
try {
// 创建文件
file.createNewFile();
// 准备录制
mr.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
// 开始录制
mr.start();
recordButton.setText("录音中……");
}
});
// 停止按钮点击事件
stopButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (mr != null) {
mr.stop();
mr.release();
mr = null;
recordButton.setText("录音");
Toast.makeText(getApplicationContext(), "录音完毕", Toast.LENGTH_LONG).show();
}
}
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY