Android 利用Service播放音乐

1.新建Service类:

覆写onCreate()onStartCommand() onDestory() 方法。Service中定义MediaPlayer类对象,用来播放音乐。


package com.engineer.shizhibin.music;

import android.app.Service;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.IBinder;
import android.util.Log;

public class MusicService extends Service {
    private MediaPlayer player;
    public MusicService() {
    }
    public void onCreate() {
        super.onCreate();
        Log.e("mytarg","oncreate");
        player = MediaPlayer.create(this,R.raw.gg);
    }
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.e("mytarg","onStartCommand");
        player.start();
        return START_STICKY;
    }
    public void onDestroy() {
        super.onDestroy();
        player.stop();
    }
    public IBinder onBind(Intent intent) {
        // TODO: Return the communication channel to the service.
        throw new UnsupportedOperationException("Not yet implemented");
    }
}

2.res文件夹下添加raw文件夹,把要播放的 .mp3文件放入其中。

3.Activity_Main.xml中添加两个按钮,一个开始播放,另一个停止播放。

<Button
      android:id="@+id/start"
      android:layout_width="match_parent"
      android:layout_height="wrap_content"
      android:text="start"/>
    <Button
        android:id="@+id/stop"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="stop"/>

4.在MainActivity中给两个按钮设置监听,点击start开始服务,播放音乐,点击stop停止服务。

public class MainActivity extends AppCompatActivity {
    private Button mStart;
    private Button mStop;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mStart = (Button) this.findViewById(R.id.start);
        mStop = (Button) this.findViewById(R.id.stop);
        final Intent intent = new Intent(MainActivity.this,MusicService.class);
        mStart.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                startService(intent);
            }
        });

        mStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                stopService(intent);
            }
        });
    }
}

猜你喜欢

转载自blog.csdn.net/bingocoder/article/details/80558560