欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > Android >内容正文

Android

Android中的音乐播放

发布时间:2025/3/15 Android 59 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Android中的音乐播放 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

      在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中*/

@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; }   }

总结

以上是生活随笔为你收集整理的Android中的音乐播放的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。