Android 音乐播放(多媒体)
2017-02-21 23:31
337 查看
Android 音乐播放(多媒体)应用内的 、SD卡、网络
以下是一个小demo
XML代码:
Java代码:
*下面一个是播放SD卡里的音乐文件*
XML代码:
XML和上面的一样
Java代码:
还要在清单文件下加个读取SD卡的权限
下面一个是播放网络下载的音乐文件
XML代码:
XML和上面的一样
Java代码:
还要在清单文件下加个读取网络的权限
还要在tomcat的 webapps\ROOT里面放上你的音乐文件 .mp3
要连一个局域网 tomcat bin目录下的startup.bat文件要打开
以下是一个小demo
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" tools:context="com.dzz.android26_playmusic.MainActivity"> <SeekBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sb_main" 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>
Java代码:
package com.dzz.android26_playmusic; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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 sb_main; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_main = (SeekBar) findViewById(R.id.sb_main); //给进度条设置拖动事件 sb_main.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= sb_main.getProgress(); mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view) throws IOException { final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放应用内的文件 //在项目里raw的文件下 mediaPlayer = MediaPlayer.create(this, R.raw.love); mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的播放时间 int duration=mediaPlayer.getDuration(); //设置进度条的最大值为:音乐的播放时长 sb_main.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 (sb_main.getProgress()<=sb_main.getMax()){ //获取音乐的当前播放位置 int currentPosition=mediaPlayer.getCurrentPosition(); sb_main.setProgress(currentPosition); } } } }
*下面一个是播放SD卡里的音乐文件*
XML代码:
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" tools:context="com.dzz.android26_playmusic.MainActivity"> <SeekBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sb_main" 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>
Java代码:
package com.dzz.android26_playmusic; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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 sb_main; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_main = (SeekBar) findViewById(R.id.sb_main); //给进度条设置拖动事件 sb_main.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= sb_main.getProgress(); mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view) throws IOException { final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ mediaPlayer=new MediaPlayer(); //设置音频流的类型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //播放SD卡的文件 mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Music/f.mp3")); //准备一下(SD卡) mediaPlayer.prepare(); mediaPlayer.start(); imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的播放时间 int duration=mediaPlayer.getDuration(); //设置进度条的最大值为:音乐的播放时长 sb_main.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 (sb_main.getProgress()<=sb_main.getMax()){ //获取音乐的当前播放位置 int currentPosition=mediaPlayer.getCurrentPosition(); sb_main.setProgress(currentPosition); } } } }
还要在清单文件下加个读取SD卡的权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dzz.android26_playmusic"> <!-- 读取内存卡的权限--> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
下面一个是播放网络下载的音乐文件
XML代码:
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" tools:context="com.dzz.android26_playmusic.MainActivity"> <SeekBar android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/sb_main" 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>
Java代码:
package com.dzz.android26_playmusic; import android.media.AudioManager; import android.media.MediaPlayer; import android.net.Uri; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; 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 sb_main; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sb_main = (SeekBar) findViewById(R.id.sb_main); //给进度条设置拖动事件 sb_main.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= sb_main.getProgress(); mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view) throws IOException { final ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){ //播放应用内的文件 mediaPlayer=new MediaPlayer(); //设置音频流的类型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //设置音源 //播放音乐 mediaPlayer.setDataSource(this, Uri.parse("http://192.168.23.3:8080/internet.mp3")); //准备(异步准备)(网络) 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(); //设置进度条的最大值为:音乐的播放时长 sb_main.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 (sb_main.getProgress()<=sb_main.getMax()){ //获取音乐的当前播放位置 int currentPosition=mediaPlayer.getCurrentPosition(); sb_main.setProgress(currentPosition); } } } }
还要在清单文件下加个读取网络的权限
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.dzz.android26_playmusic"> <!--联网的权限--> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
还要在tomcat的 webapps\ROOT里面放上你的音乐文件 .mp3
要连一个局域网 tomcat bin目录下的startup.bat文件要打开
相关文章推荐
- Android之MediaPlayer(多媒体之音乐播放)
- Android多媒体编程——MediaPlayer播放音乐
- Android多媒体播放之音乐播放状态和步骤
- android开发笔记之多媒体—播放音频(音乐)
- Android Media(多媒体)获取手机内存卡下的音乐并播放
- Android实现多媒体之播放音乐
- android 多媒体之播放网络音乐demo
- Android里面多媒体的应用(简单的播放音乐和视频)
- Android多媒体开发 音乐播放(加带进度条、时间显示)以及使用SoundPool播放音效
- 【android学习之十四】——多媒体1:音乐播放
- android 多媒体编程(五) 调用系统播放器播放音乐/视频
- Android Media(多媒体)播放Module raw下的音乐
- Android多媒体__信息和简单的音乐播放
- Android多媒体开发 音乐播放(加带进度条、时间显示)以及使用SoundPool播放音效
- Android开发之基础---------多媒体音乐和视频播放
- (转)android操作sdcard中的多媒体文件(二)——音乐列表的更新
- android操作sdcard中的多媒体文件(一)——音乐列表的制作
- Android Service使用方法--简单音乐播放实例
- Android 播放音乐文件与视频文件
- Android多媒体--网络文件播放