论自作音乐播放器涉及知识点总结
来源:互联网 发布:seo是什么职位 编辑:程序博客网 时间:2024/06/10 17:22
1.内容提供者查找手机SD卡下的音乐
配置读取SD卡权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
//调用方法
List<Good> list = GetMusic.Music(MainActivity.this);
package com.bawei.day07_music;import java.util.ArrayList;import com.bawei.vo.Good;import android.content.ContentResolver;import android.content.Context;import android.database.Cursor;import android.net.Uri;import android.provider.MediaStore;import android.provider.MediaStore.Audio;public class GetMusic { public static ArrayList<Good> Music(Context context) { ContentResolver resolver = context.getContentResolver(); // 内容提供者访问MediaStore.Audio.Media.EXTERNAL_CONTENT_URI Cursor cursor = resolver.query( MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, null); ArrayList<Good> list=new ArrayList<Good>(); while (cursor.moveToNext()) { // 名字 String name = cursor.getString(cursor .getColumnIndex(Audio.Media.TITLE)); // 专辑名 String album = cursor.getString(cursor .getColumnIndexOrThrow(Audio.Media.ALBUM)); // 歌手名 String artist = cursor.getString(cursor .getColumnIndexOrThrow(Audio.Media.ARTIST)); // URI歌曲文件存放路径 String path = cursor.getString(cursor .getColumnIndexOrThrow(Audio.Media.DATA)); // 歌曲文件播放时间长度 int duration = cursor.getInt(cursor .getColumnIndexOrThrow(Audio.Media.DURATION)); // 音乐文件大小 int size = cursor.getInt(cursor .getColumnIndexOrThrow(Audio.Media.SIZE)); //保存到集合 list.add(new Good(name,artist,path,false)); } return list; }}
2.播放音乐
//播放音乐 private void startMusic(int arg0) { //让上一首停下 if (player != null && player.isPlaying()) { player.stop(); player.reset(); player = null; } try { //播放器 player = new MediaPlayer(); //播放路径 player.setDataSource(list.get(arg0).getMusic()); //准备 player.prepare(); //播放 player.start(); //得到歌曲总进度 c = player.getDuration(); //给进度条seekbar设置最大值 seekBar.setMax(c); //timer time(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
//timer private void time() { // TODO Auto-generated method stub //timer timer = new Timer(); //播放进度100毫秒前进一下 timer.schedule(new TimerTask() { private int d; @Override public void run() { // TODO Auto-generated method stub //得到当前播放进度 d = player.getCurrentPosition(); //赋给seekbar seekBar.setProgress(d);
//handler传值 显示时间 Message message = Message.obtain(); message.arg1 = c; message.arg2 = d; handler.sendMessage(message); } }, 0, 100); }
//显示时间 Handler handler = new Handler() { public void handleMessage(Message msg) { //当前进度 int cu1 = msg.arg1; //总长度 int cu2 = msg.arg2; //转换成时间格式 SimpleDateFormat sim = new SimpleDateFormat("mm:ss"); String cur1 = sim.format(cu1); String cur2 = sim.format(cu2); //赋给textview text1.setText(cur2); text2.setText(cur1); }; };
3.暂停继续播放
if (player != null) { //音乐暂停 player.pause(); //得到当前seekBar进度 m = seekBar.getProgress(); }
//继续播放 player.seekTo(m);
4.seekbar调整音乐播放进度
//seekbar调整音乐播放进度 seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { public void onStopTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub if (player != null) { //得到当前拖拽的进度 player.seekTo(seekBar.getProgress());
//timer timecan();
//timer计时 time(); } } public void onStartTrackingTouch(SeekBar seekBar) { // TODO Auto-generated method stub //清空timer timecan(); } public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // TODO Auto-generated method stub } });
////清空timer private void timecan() { // TODO Auto-generated method stub if (timer != null) { timer.cancel(); } }
5.Intent跳转传list集合
先把List<>改为ArrayList<>
ArrayList<Good> list=new ArrayList<Good>();
Intent intent = new Intent(MainActivity.this,InfoActivity.class);
intent.putExtra("list", list); startActivity(intent);
Intent intent = getIntent();
ArrayList<Good> list= (ArrayList<Good>) intent.getSerializableExtra("list");
0 0
- 论自作音乐播放器涉及知识点总结
- 音乐播放demo知识点总结
- 网络音乐播放器项目学习知识点总结
- android 音乐播放器总结
- 音乐播放器项目总结
- android 自编音乐播放器源代码
- MFC编程总结,音乐播放器制作
- android-简单音乐播放器的总结
- 使用android模拟器自带的音乐播放器播放音乐
- Android自带音乐播放器代码分析(1)
- Android自带音乐播放器代码分析(1)
- Android自带音乐播放器代码分析(2)
- android自带音乐播放器分析RepeatingImageButton
- 自做音乐播放器涉及到的相关知识
- 谈一谈做iOS播放器库开发所涉及的知识点
- android自带音乐播放器删除音乐失败的问题
- android音乐播放器播放音乐卡
- Android 音乐播放 类似音乐播放器
- ScrollView中嵌套ListView
- 自定义Toast
- Android上传头像代码,相机,相册,裁剪
- 关于ScrollView中嵌套listview焦点滑动问题 解决
- Android横竖屏切换继续播放视频
- 论自作音乐播放器涉及知识点总结
- listview中item 有checkbox多选防止滑动 listview页面 出现checkbox错位问题
- Intent跳转传list集合
- 单例模式的五种写法
- Android webview实现上传图片的效果(图片压缩)
- Android之自定义生成彩色二维码
- 电脑配置 eclipse 环境变量
- 广播发送者&广播接收者介绍
- android 百度地图定位开发1