首页 > 系统 > Android > 正文

学习Android中音乐播发器

2019-11-07 23:47:53
字体:
来源:转载
供稿:网友

Android音乐播发器 源代码附上:

布局文件如下:

<?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: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"    tools:context="com.zking.g150831_android26_playmusic.MainActivity">    <SeekBar        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/seekBar"        android:layout_weight="1"/>    <ImageButton        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@android:drawable/ic_media_play"        android:onClick="isPlayOrPause"        /></LinearLayout>
<?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: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.zking.g150831_android26_playmusic.SoundPoolActivity">    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="playKFC"        android:text="音效KFC"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="playTwo"        android:text="音效Two"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="playThree"        android:text="音效Three"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="playFour"        android:text="音效Four"        />    <Button        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:onClick="playDog"        android:text="音效Dog"        /></LinearLayout>java代码如下:
package com.zking.g150831_android26_playmusic;import android.media.AudioManager;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;import java.io.IOException;public class MainActivity extends AppCompatActivity {    PRivate MediaPlayer mediaPlayer;    private SeekBar seekBar;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        seekBar = (SeekBar) findViewById(R.id.seekBar);        //给进度条设置拖动事件        seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {            @Override            public void onProgressChanged(SeekBar seekBar, int i, boolean b) {            }            @Override            public void onStartTrackingTouch(SeekBar seekBar) {            }            @Override            public void onStopTrackingTouch(SeekBar seekBar) {                //获取拖动后的进度                int progress=seekBar.getProgress();                mediaPlayer.seekTo(progress);            }        });    }    public void isPlayOrPause(View view) throws IOException {        final ImageButton imageButton= (ImageButton) view;        if(mediaPlayer==null){            //播放应用内的音频文件//            mediaPlayer = MediaPlayer.create(this, R.raw.love);            mediaPlayer=new MediaPlayer();            //设置音频流的类型            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);            //设置音源            //播放内存卡中的音频文件//            mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Music/f.mp3"));            //播放网络音乐            mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.135/internet.mp3"));            //准备一下(内存卡)//            mediaPlayer.prepare();            //准备(异步准备)            mediaPlayer.prepareAsync();            //设置准备完成的监听            mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {                @Override                public void onPrepared(MediaPlayer mediaPlayer) {                    mediaPlayer.start();                    imageButton.setImageResource(android.R.drawable.ic_media_pause);                    //获取音乐的播放时长                    int duration=mediaPlayer.getDuration();                    //设置进度条的最大值为:音乐的播放时长                    seekBar.setMax(duration);                    new MyThread().start();                }            });        }else if(mediaPlayer.isPlaying()){            mediaPlayer.pause();            imageButton.setImageResource(android.R.drawable.ic_media_play);        }else{            mediaPlayer.start();            imageButton.setImageResource(android.R.drawable.ic_media_pause);        }    }    class MyThread extends Thread{        @Override        public void run() {            super.run();            while(seekBar.getProgress()<=seekBar.getMax()){                //获取音乐的当前播放位置‘                int currentPosition=mediaPlayer.getCurrentPosition();                seekBar.setProgress(currentPosition);            }        }    }}
package com.zking.g150831_android26_playmusic;import android.media.AudioManager;import android.media.SoundPool;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class SoundPoolActivity extends AppCompatActivity {    private SoundPool soundPool;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_sound_pool);        //实例化音频池        soundPool = new SoundPool(4, AudioManager.STREAM_MUSIC,0);        soundPool.setOnLoadCompleteListener(new SoundPool.OnLoadCompleteListener() {            @Override            public void onLoadComplete(SoundPool soundPool, int i, int i1) {                //播放                soundPool.play(i,1,1,1,-1,1);            }        });    }    public void playKFC(View view){        soundPool.load(this,R.raw.rooster,1);    }    public void playTwo(View view){        soundPool.load(this,R.raw.chimp,1);    }    public void playThree(View view){        soundPool.load(this,R.raw.crickets,1);    }    public void playFour(View view){        soundPool.load(this,R.raw.roar,1);    }    public void playDog(View view){        soundPool.load(this,R.raw.dogbark,1);    }    @Override    protected void onDestroy() {        super.onDestroy();        if(soundPool!=null){            soundPool.release();            soundPool=null;        }    }
}
新建一个文件夹 raw 把音乐放入其中最后记住在清单文件中 配置权限:
<activity android:name=".SoundPoolActivity">	<intent-filter>		<action android:name="android.intent.action.MAIN"/>		<category android:name="android.intent.category.LAUNCHER"/>	</intent-filter></activity>


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表