Android小程序实现音乐播放列表_Android

来源:脚本之家  责任编辑:小易  

监听点击事件,media.start()www.zgxue.com防采集请勿采集本网。

本文实例为大家分享了Android实现音乐播放列表的具体代码,供大家参考,具体内容如下

java并不支持所有的音频格式(比如mp3格式),支持的音乐格式主要有:au,wav,midi,mid,aiff 所以你这个文件可以播放wav,但不能播放mp3

(1)创建一个数据类工具类DBHelper,该类继承SQLiteOpenHelper,重写onCreate()和onUpgrade()方法,并添加insert()、delete()、query()方法,分别实现数据的添加、删除和查询。DBHelper类的代码如下:

Android平台实现音乐播放器,如果单单将播放音乐的操作放在子线程中进行会有一些问题: Thread所在的Activity优先级低,容易被系统杀死。如果程序在后台,Thread所在的Activity很可能因为内存

package com.example.musiclist;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class DBHelper extends SQLiteOpenHelper{ private static final String DB_NAME = "music.db"; //数据库名称 private static final String TBL_NAME = "MusicTbl"; //表名 private SQLiteDatabase db; //声明SQLiteDatabase对象 //构造函数 DBHelper(Context c){ super(c, DB_NAME, null, 2); } @Override public void onCreate(SQLiteDatabase db){ //获取SQLiteDatabase对象 this.db = db; //创建表 String CREATE_TBL = "create table MusicTbl(_id integer primary key autoincrement, name text, singer text)"; db.execSQL(CREATE_TBL); } //插入 public void insert(ContentValues values){ SQLiteDatabase db = getWritableDatabase(); db.insert(TBL_NAME, null, values); db.close(); } //查询 public Cursor query(){ SQLiteDatabase db = getWritableDatabase(); Cursor c = db.query(TBL_NAME, null, null, null, null, null, null); return c; } //删除 public void del(int id){ if(db == null){ db = getWritableDatabase(); } db.delete(TBL_NAME, "_id=?", new String[]{String.valueOf(id)}); } //关闭数据库 public void close(){ if(db != null){ db.close(); } } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { }}

你应该是用Mediaplayer这个类实现播放的吧,这个类在播放时,是异步加载的,也就是说会有一段准备时间,播放的状态变化参照下图,你放在全局的话,是最先加载的,所以当你点击播放时,音乐已经

(2)创建添加音乐的AddActivity,添加界面提供两个文本框和一个按钮,用于输入音乐名和歌手名,当单击“添加”按钮时,将数据插入到表中,具体代码如下:

android开发培训一个简单的Android音乐播放器 在这里主要是用两个简单的按钮实现音乐的播放和停止功能,工程的目录结构为: 同时添加一个文件夹,里面放后缀为mp3的文件就可以了。在main配置文件

package com.example.musiclist;import android.app.Activity;import android.content.ContentValues;import android.content.Intent;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;public class AddActivity extends Activity { private EditText et1, et2; private Button b1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add); this.setTitle("添加收藏信息"); et1 = (EditText)findViewById(R.id.EditTextName); et2 = (EditText)findViewById(R.id.EditTextSinger); b1 = (Button)findViewById(R.id.ButtonAdd); b1.setOnClickListener(new OnClickListener() { public void onClick(View v) { // 获取用户输入的文本信息 String name = et1.getText().toString(); String singer = et2.getText().toString(); //创建ContentValues对象。封装记录信息 key 和 values 值成对出现 ContentValues values = new ContentValues(); values.put("name", name); values.put("singer", singer); //创建数据库工具类DBHelper DBHelper helper = new DBHelper(getApplicationContext()); //调用insert()方法插入数据 helper.insert(values); //跳转到QueryActivity,显示音乐列表 Intent intent = new Intent(AddActivity.this, QueryActivity.class); startActivity(intent); } }); }}

启动播放音乐的服务 intent=new Intent(\"play\");intent.putExtra(\"uri\",((HashMap,string=\"\">)list get(currentPositionMusic)).get(\"path\"));intent.putExtra(\"title\",((HashMap,string=\"\">)list get

当单击“添加”按钮时,先将用户输入的音乐名和歌手信息封装到ContentValues对象中,再调用DBHelper的insert()方法将记录插入到数据库中,然后跳转到QueryActivity来显示音乐列表。

AddActivity的布局文件内容如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:padding="10dp"> <TableLayout android:id="@+id/TableLayout" android:layout_width="wrap_content" android:layout_height="wrap_content" android:stretchColumns="1"> " <TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="歌名"/> <EditText android:id="@+id/EditTextName" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> </TableRow> <TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content"> <TextView android:id="@+id/TextView02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="歌手"/> <EditText android:id="@+id/EditTextSinger" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text=""/> </TableRow> <Button android:id="@+id/ButtonAdd" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="添加"/> </TableLayout></LinearLayout>

(3)创建显示音乐列表的QueryActivity,具体代码如下:

package com.example.musiclist;import android.app.AlertDialog;import android.app.ListActivity;import android.content.DialogInterface;import android.database.Cursor;import android.os.Bundle;import android.support.v4.widget.CursorAdapter;import android.text.AlteredCharSequence;import android.view.Menu;import android.view.MenuItem;import android.view.View;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;import android.widget.SimpleCursorAdapter;public class QueryActivity extends ListActivity { //列表视图 private ListView listView = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setTitle("浏览音乐列表信息"); final DBHelper helpter = new DBHelper(this); //获取listview对象,引用变量和实例化对象 listView = getListView(); //查询数据,获取游标 Cursor c = helpter.query(); //列表项数组 String[] from = {"_id", "name", "singer"}; //列表项ID int[] to = {R.id.text0, R.id.text1, R.id.text2}; //适配器 SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.activity_query, c, from, to); //为列表视图添加适配器 listView.setAdapter(adapter); //提示对话框 final AlertDialog.Builder builder = new AlertDialog.Builder(this); //设置ListView单击监听器 listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?>arg0, View arg1, int arg2, long arg3){ final long temp = arg3; builder.setMessage("真的要删除该记录吗?").setPositiveButton("是", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { //删除数据 helpter.del((int)temp); //重新查询数据 Cursor c = helpter.query(); String[] from = {"_id", "name", "singer"}; int[] to = {R.id.text0, R.id.text1, R.id.text2}; SimpleCursorAdapter adapter = new SimpleCursorAdapter(getApplicationContext(), R.layout.activity_query, c, from, to); //为列表视图添加适配器 listView.setAdapter(adapter); } }).setNegativeButton("否", null); AlertDialog ad = builder.create(); ad.show(); } }); helpter.close(); }}

上述代码中调用DBHelper的query()方法查询数据库并返回一个Cursor游标,然后使用SimpleCursorAdapter适配器将数据绑定到ListView控件上,并在ListView控件上注册单击监听器,当单击一条记录时,显示一个警告对话框提示是否删除,单击“是”,则调用DBHelper的del()方法删除指定记录。

QueryActivity布局文件内容如下:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/text0" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25px"/> <TextView android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25px"/> <TextView android:id="@+id/text2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25px"/></LinearLayout>

运行程序,添加音乐信息:

在音乐列表中单击一条记录,弹出警告对话框删除一条记录:

更多关于播放器的内容请点击《java播放器功能》进行学习。

在Android平台下,要实现声音的播放是十分容易实现的,只要生成一个MediaPlayer对象,并调用它的相关方法,就能改变对声音播放进行控制。MediaPlayer对象有一下各种状态:熟悉了MediaPlayer对象的各种状态后以及转换条件,就能很好的控制媒体播放。例如:播放res/raw文件夹中的歌曲十分简单,只需写如下代码:MediaPlayer mp=MediaPlayer.create(context,R.raw.sound_file_1);mp.start();也可以指定音乐文件的位置来进行播放,例如,在sdcard根目录下有有一首歌曲:test.mp3。则可以这样播放:MediaPlayer mp=new MediaPlayer();String song=Environment.getExternalStorageDirectory().getAbsolutePath()+File.separator+"test.mp3;try {mp.setDataSource(song);mp.prepare();mp.start();} catch(Exception e){e.printStackTrace();}建议在播放音乐的时候把MediaPlayer放在Service中,因为如果放在Activity中会使得界面特别卡。而且音乐不能放到后台里播放,一旦退出Activity,音乐就会暂停播放。可以在Activity中布局相关的界面,例如按钮等。然后通过这个Activitiy来启动这个Service。要通过UI与Service交互,可以通过Intent对象传递消息。更复杂一些,要实现Service向Activity发送消息,并利用这些消息来更新UI,这可以用广播机制,例如告诉Activity是否正在播放,播放进度,当前播放歌曲条目等信息。例如以下实例代码:Activity中*/Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.main);btnPlay=(Button)findViewById(R.id.btnPlay);btnPause=(Button)findViewById(R.id.btnPause);btnPlay.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){Intent intent=new Intent(MainActivity.this,SoundService.class);intent.putExtra("playing",true);startService(intent);}});btnPause.setOnClickListener(new OnClickListener(){Overridepublic void onClick(View v){Intent intent=new Intent(MainActivity.this,SoundService.class);intent.putExtra("playing",false);startService(intent);}});}}播放音乐的Service代码:packagecom.yzy.sound;import android.app.Service;import android.content.Intent;import android.media.MediaPlayer;import android.os.IBinder;public class SoundService extends Service {private MediaPlayer mp;Overridepublic void onCreate(){super.onCreate();mp=MediaPlayer.create(this,R.raw.test);}Overridepublic void onDestroy(){super.onDestroy();mp.release();stopSelf();}Overridepublic int onStartCommand(Intent intent,int flags,int startId){boolean playing=intent.getBooleanExtra("playing",false);if(playing){mp.start();} else {mp.pause();}return super.onStartCommand(intent,flags,startId);}Overridepublic IBinder onBind(Intent intent){return null;}}内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 教你轻松制作android音乐播放器
  • android音乐播放简单实现的简单示例(mediaplayer)
  • android简易音乐播放器实现代码
  • android暂停或停止其他音乐播放器的播放实现代码
  • android实现简单音乐播放器(mediaplayer)
  • android编程开发音乐播放器实例
  • android仿搜狐视频、微视等列表播放视频功能
  • android实现小音频频繁播放
  • android开发简易音乐播放器
  • android实现简单音乐播放器
  • android应用图标在状态栏上显示实现原理
  • activity isfinishing()判断activity的状态实例
  • android 网络图片查看器与网页源码查看器
  • android异步更新ui的四种方式
  • android自定义滚轴选择器
  • android开发教程之listview显示sqlite数据
  • android中封装recyclerview实现添加头部和底部示例代码
  • 自定义toast外形,多次点击不会总是弹出toast的实现方法
  • android调试工具adb命令大全
  • android中创建通知栏notification代码实例
  • android 如何实现音乐播放
  • android音乐播放器小程序怎么点击播放
  • 微信小程序后台播放音乐怎么实现
  • android音乐播放器开发,这部分是如何实现的
  • JAVA音乐播放小程序,不过不能播放音乐,请高手解答!!
  • android平台的音乐播放器,播放音乐(这应该是一个很耗时的操作)能不能在子线程中实现?
  • android写程序音乐播放问题
  • Android要求做一个一个简易音乐播放器。用Service实现
  • android 音乐播放器程序必须得用broadcast吗
  • 小播本地音乐功能指引
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全c#教程vbvb.netc 语言java编程delphijavaandroidiosswiftscala易语言汇编语言其它相关首页教你轻松制作android音乐播放器android音乐播放简单实现的简单示例(mediaplayer)android简易音乐播放器实现代码android暂停或停止其他音乐播放器的播放实现代码android实现简单音乐播放器(mediaplayer)android编程开发音乐播放器实例android仿搜狐视频、微视等列表播放视频功能android实现小音频频繁播放android开发简易音乐播放器android实现简单音乐播放器android应用图标在状态栏上显示实现原理activity isfinishing()判断activity的状态实例android 网络图片查看器与网页源码查看器android异步更新ui的四种方式android自定义滚轴选择器android开发教程之listview显示sqlite数据android中封装recyclerview实现添加头部和底部示例代码自定义toast外形,多次点击不会总是弹出toast的实现方法android调试工具adb命令大全android中创建通知栏notification代码实例一看就懂的android app开发入门教微信公众平台开发入门教程(图文详android基础之使用fragment控制切六款值得推荐的android(安卓)开android textview设置中文字体加android应用开发sharedpreferencandroid 动画之translateanimatiandroid压力测试命令monkey详解android按钮单击事件的四种常用写android调试工具ddms的使用详解android 在子线程中更新ui的几种方法示例android 动画(view动画,帧动画,属性动画android studio编写简单的手电筒appandroid仿qq登陆窗口实现原理android使用viewpager实现类似laucher左右android中drawerlayout实现侧滑菜单效果android viewdraghelper使用介绍android自定义scrollview实现顶部图片下拉android studio发布项目到jcenter仓库步骤android输入框添加emoje表情图标的实现代
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved