mediaPlayer的使用(内存卡与内存中读取资源)

来源:互联网 发布:slmmsk软件下载 编辑:程序博客网 时间:2024/05/17 00:11

这次简单的带来mediaPlayer播放音乐的基本操作使用,结合seekBar拖动,以及暂停播放。

简单demo效果图如下:

这里写图片描述


activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main"    android:layout_width="match_parent" android:layout_height="match_parent"    android:paddingBottom="@dimen/activity_vertical_margin"    android:paddingLeft="@dimen/activity_horizontal_margin"    android:paddingRight="@dimen/activity_horizontal_margin"    android:paddingTop="@dimen/activity_vertical_margin"    android:orientation="vertical"    tools:context="com.example.android26_mediaplayer.MainActivity">    <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"        android:text="音乐播放器" />    <SeekBar        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/sb_mediaplay"        />    <ImageButton        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@android:drawable/ic_media_play"        android:onClick="Play"        /></LinearLayout>

MainActivity.java:

package com.example.android26_mediaplayer;import android.media.MediaPlayer;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ImageButton;import android.widget.SeekBar;public class MainActivity extends AppCompatActivity {    private SeekBar seekBar;    private MediaPlayer mp;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        seekBar = (SeekBar) findViewById(R.id.sb_mediaplay);        //添加seekBar的拖动事件        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStopTrackingTouch(SeekBar seekBar1) {                //设置当前音乐的位置                mp.seekTo(seekBar.getProgress());            }        });    }    public void Play(View view){        ImageButton ImageButton= (android.widget.ImageButton) view;        if(mp==null){            //读取内存中的资源            mp = MediaPlayer.create(this, R.raw.bow);            mp.start();            //读取内存卡中的资源            mp=new MediaPlayer();            //设置音源//            mp.setDataSource(this, Uri.parse("file://mnt/sdcard/music/love.mp3"));            //准备(必须添加)//            mp.prepare();            mp.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {//设置准备完成的监听                @Override                public void onPrepared(MediaPlayer mp) {                    seekBar.setMax(mp.getDuration());//设置seekbar总时长                    new MyThread().start();//启动线程                }            });        }        else if(mp.isPlaying()){//是否在播放            ImageButton.setImageResource(android.R.drawable.ic_media_play);            mp.pause();//暂停音乐        }        else{            ImageButton.setImageResource(android.R.drawable.ic_media_pause);            mp.start();//播放音乐        }    }    class MyThread extends  Thread{        @Override        public void run() {            super.run();            while(seekBar.getProgress()<=seekBar.getMax()){//如果当前的位置小于总长                seekBar.setProgress(mp.getCurrentPosition());//设置为当前音乐播放的位置            }        }    }}

这样简单的一个音乐播放器就完成啦。

0 0
原创粉丝点击