service结合MediaPlayer的基础使用

本文详细介绍了Android中MediaPlayer的生命周期,包括Idle、Prepared、Started等状态,并提供了两种创建MediaPlayer的方法。还展示了如何使用Service结合MediaPlayer进行音乐播放控制,包括开始、暂停、停止和循环播放的操作。同时,给出了MainActivity和MusicService的代码示例,帮助理解MediaPlayer在实际应用中的使用。
摘要由CSDN通过智能技术生成
 首先先总结下MediaPlayer的基础使用方法:

  打开android的开发文档,里面的State Diagram


先了解一下MediaPlayer的生命周期:

Idle状态:在reset或者MediaPlayer player=new MediaPlayer()之后进入此状态

release状态:在调用release()之后进入此状态

MediaPlayer的2种创建

方法1:

MediaPlayer player=new MediaPlayer();

这种创建之后player处于Idle状态,必须对plyaer进行初始化操作:

player.setDataSource();//设置播放源

player.prepare();//设置处于Prepared状态

player.start();//可以开始播放了

方法2:

MediaPlayer player=MediaPlayer.create();

player.start();

这种方法创建之后player处于Prepared状态,所以只要调用player.start()就可以播放音乐了

在播放之前  player必须要处于Prepared状态

播放之后可以调用isPlaying()来测试是否正在播放

可以通过调用setLooping()函数来设置循环播放。

需要注意的2点

1:当player正在播放时,可以调用player.onPause();来暂停player的播放,此时player进入Paused状态,由生命周期图可以看出只要调用start()函数

就可以进入Started状态。所以恢复播放的时候只需要在此调用player.start();即可,而且会从暂停的位置继续播放。

2:当player正在播放时,可以调用player.stop();来停止player的播放。。但是调用了stop()方法之后,player处于Stopped状态,

从上面的生命周期图可以看出来,Stopped时不能直接到Started状态。必须先调用prepare()函数进入Prepared状态,然后才能调用

start()函数进入Started状态。进行正常的播放,此时经历了Prepared状态 ,所以播放的时候必然是从头开始播放。

具体的解释就写这么多。

下面上一个我今天写的代码:

MainActivity代码:

package com.example.apple.lightmusic;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends ActionBarActivity implements View.OnClickListener
{
    private int pos=-1;
private Button start,stop,pause,loop;
    private TextView showtv;
    private String s="状态:";
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值