Android_播放本地或网络音乐

来源:互联网 发布:java throw 编辑:程序博客网 时间:2024/06/14 14:06
简单播放器布局:
<?xml version="1.0" encoding="utf-8"?><LinearLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:app="http://schemas.android.com/apk/res-auto"    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    tools:context="com.example.android_mediaplay_music.MainActivity">    <SeekBar        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/seek_main_bar"/>    <ImageButton        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/image_mian_button"        android:src="@android:drawable/ic_media_play"        android:onClick="play"/></LinearLayout>
Activity编码:
package com.example.android_mediaplay_music;import android.media.AudioManager;import android.media.MediaPlayer;import android.net.Uri;import android.os.Environment;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 ImageButton image_mian_button; private SeekBar seek_main_bar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); image_mian_button = (ImageButton) findViewById(R.id.image_mian_button); seek_main_bar = (SeekBar) findViewById(R.id.seek_main_bar); seek_main_bar.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 current=seekBar.getProgress(); mediaPlayer.seekTo(current); } }); } public void play(View view){ if (mediaPlayer==null){ //获取本地音乐// mediaPlayer = MediaPlayer.create(this, R.raw.s8); if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){ String path=Environment.getExternalStorageDirectory().getAbsolutePath(); mediaPlayer=new MediaPlayer(); mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); try { //获取网络音乐 mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.134:8080/s8.mp3"));// mediaPlayer.prepare(); mediaPlayer.prepareAsync(); mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { mediaPlayer.start(); seek_main_bar.setMax(mediaPlayer.getDuration()); image_mian_button.setImageResource(android.R.drawable.ic_media_pause); new MyThread().start(); } }); } catch (IOException e) { e.printStackTrace(); } } }else if (mediaPlayer.isPlaying()){ //如果正在播放音乐 mediaPlayer.pause(); image_mian_button.setImageResource(android.R.drawable.ic_media_play); }else{ image_mian_button.setImageResource(android.R.drawable.ic_media_pause); mediaPlayer.start(); } } class MyThread extends Thread{ @Override public void run() { super.run(); if (seek_main_bar.getProgress()<seek_main_bar.getMax()){ seek_main_bar.setProgress(mediaPlayer.getCurrentPosition()); } } }}
xml配置:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>    <uses-permission android:name="android.permission.INTERNET"></uses-permission>