十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在Android平台下,要实现声音的播放是十分容易实现的,只要生成一个MediaPlayer对象,并调用它的相关方法,就能改变对声音播放进行控制。MediaPlayer对象有一下各种状态:
创新互联建站是一家专业提供景宁畲族自治企业网站建设,专注与成都网站制作、成都网站设计、外贸营销网站建设、HTML5、小程序制作等业务。10年已为景宁畲族自治众多企业、政府机构等服务。创新互联专业网站设计公司优惠进行中。
熟悉了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中*/
@Override
public 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() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SoundService.class);
intent.putExtra("playing", true);
startService(intent);
}
});
btnPause.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,SoundService.class);
intent.putExtra("playing", false);
startService(intent);
}
});
}
}
播放音乐的Service代码:
package com.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;
@Override
public void onCreate() {
super.onCreate();
mp = MediaPlayer.create(this, R.raw.test);
}
@Override
public void onDestroy() {
super.onDestroy();
mp.release();
stopSelf();
}
@Override
public 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);
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
安卓 音乐发烧友必备:
poweramp音乐播放器,支持安卓musicfx音效插件进入软件音频设置开启musicfx。立体声效果附带自定义设置,立体声效果长按按钮旁字体进入自定义界面。支持音调,可进一步放大低音和高音。附带专业的音频压限器。支持自定义EQ设置。(ROOT权限下用幸运破解器可完美破解)
Rockbox音乐播放器,拥有最为强大而复杂的EQ自定义设置,专业级音乐播放器,普通人慎用,由于其用法设置过于复杂,不适合新手使用。
以上两款是音质最强的安卓音乐播放器。建议使用:poweramp音乐播放器
其他的天天动听,酷狗音乐,酷我音乐盒,多米音乐,是国产的音乐播放器,虽有华丽的界面但音质被poweramp和Rockbox完全秒杀。
你打开播放器,然后退出,在顶端任务栏里不是有一个正在播放的图标吗,那就是没退出。 打开播放器后,只要你暂停播放,再退出,就不会有那个图标了,也就是退出了。