Android实现多媒体之播放音乐

闲来无聊,最近了解了一下多媒体的一些初步知识。

音频播放主要设计到MediaPlayer这个类,播放音频的路径可以来源于三个地方。

1.应用内的音频

public class MediaPlayActivity extends AppCompatActivity { private SeekBar seekBar; private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_media_play); seekBar = (SeekBar) findViewById(R.id.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 seekBar) { //获取拖动结束后的位置 int progress=seekBar.getProgress(); //跳转到某个位置播放 mediaPlayer.seekTo(progress); } }); } public void isPlayOrPause(View view){ ImageButton imageButton= (ImageButton) view; if(mediaPlayer==null){//代表第一次播放音乐 mediaPlayer = MediaPlayer.create(this, R.raw.Loser); mediaPlayer.start(); //把图标改成暂停的图标(这里的暂停图标就是播放时的状态) imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的总时长 int duration=mediaPlayer.getDuration(); //设置进度条的最大值为音乐的总时长 seekBar.setMax(duration); new MyThread(); }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); } } } }

2.  播放内存卡里的音乐,这一部分代码就是替换前面的mediaPlayer = MediaPlayer.create(this, R.raw.Loser);

//播放内存卡内的音频 mediaPlayer=new MediaPlayer(); //设置类型 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); //设置音源 try { mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Music/f.mp3")); //必须在播放前加载音频文件 mediaPlayer.prepare(); } catch (IOException e) { e.printStackTrace(); }

3.播放网络上的音频文件
首先我们要把网络环境搭配,

1).找到我们tomcat放的位置,

2)然后双击startup.bat运行,最小化界面

3)然后打开cmd命令,输入config找到我们本机的IPv4地址

4)然后在浏览器上试一下,是否能够打开tomcat的主页

5)在把自己的mp3文件放到tomcat的ROOT目录下

6)然后在自己的模拟器上,用浏览器同样的去打开,用自己本机的IPv4地址去打开tomcat的主页,在后面加上音乐的名字,看能不能放出来,如果可以,就代表环境已经搭配好了

7)接下来我们上代码

把之前播放内存卡上的音频路径改成网络上的

//播放网络上的 mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.164/internet.mp3")); //必须在播放前加载音频文件(异步准备) mediaPlayer.prepareAsync();

然后准备完成的监听

//监听:准备完成的监听 mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mp) { mediaPlayer.start(); //把图标改成暂停的图标(这里的暂停图标就是播放时的状态) imageButton.setImageResource(android.R.drawable.ic_media_pause); //获取音乐的总时长 int duration=mediaPlayer.getDuration(); //设置进度条的最大值为音乐的总时长 seekBar.setMax(duration); new MyThread(); } });

最后,注意一个细节,在Manifasit里面加上联网的权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

最后运行一下,就大功告成了,界面非常的简单

如果你们想加上歌词啊,时间啊,可以继续完善,但是思路都差不多,今天的分享就到此了

时间: 2024-07-31 05:30:28

Android实现多媒体之播放音乐的相关文章

Android开发中听筒无法播放音乐的解决方法_Android

本文实例讲述了Android开发中听筒无法播放音乐的解决方法.分享给大家供大家参考,具体如下: 这个问题让我蛋疼了,既然百度也木有资料. 耗时的主要原因是因为权限不足时,而没有终止程序,只用了一小行日志提醒,没有看到 用听筒播放很简单 AudioManager.setMode(AudioManager.MODE_IN_CALL) //设定为通话中即可 还是这一句代码的事,不过记得要加上权限 Android.permission.MODIFY_AUDIO_SETTINGS 不然会像我一样蛋疼半天

Android开发中听筒无法播放音乐的解决方法

本文实例讲述了Android开发中听筒无法播放音乐的解决方法.分享给大家供大家参考,具体如下: 这个问题让我蛋疼了,既然百度也木有资料. 耗时的主要原因是因为权限不足时,而没有终止程序,只用了一小行日志提醒,没有看到 用听筒播放很简单 AudioManager.setMode(AudioManager.MODE_IN_CALL) //设定为通话中即可 还是这一句代码的事,不过记得要加上权限 Android.permission.MODIFY_AUDIO_SETTINGS 不然会像我一样蛋疼半天

android快捷简单的实现音乐播放器

 播放器功能如下: 1.暂停,播放 2.拖动条实现,快进,快退 3.歌词同步 4.下一曲,上一曲. 5.专辑图片显示 6.后台播放,通知栏显示 7.来电话,暂停,电话结束,开始播放. 界面如下: 播放时候,在通知栏会有个图标.暂停,图标消失 后台播放时候,会在通知栏显示,点击,可以进入播放界面 使用详细: 到GIthob下载音乐播放器模块代码. 地址:音乐播放器模块代码下载 下载后,解压,把项目导入eclipse. 把项目作为一个library,引入项目中使用 1.引入项目 创建一个项目,点击项

Android播放音乐

mainActivity如下: package cn.com; import android.media.MediaPlayer; import android.media.MediaPlayer.OnCompletionListener; import android.media.MediaPlayer.OnErrorListener; import android.os.Bundle; import android.view.View; import android.view.View.On

Android MediaPlayer播放音乐有必要使用Service来调用吗?

问题描述 发现直接使用MediaPlayer播放音乐,退出程序后还是可以在后台继续播放?所以有个疑问,这样还需要使用Service吗? 问题补充:txlong_onz 写道 解决方案 这个就是activity和service的优先级了,如果在内存不够的情况下,优先级低的首先销毁,service的优先级比前端显示的activity高,在高于后端的activity了,到内存耗尽或者不足的情况下都会销毁的,android的程序在内存不够的情况下都是后台自动选择销毁的,一般按照优先级的,这就像是电量不足

android 获取当前播放音乐的sampling rate

问题描述 android 获取当前播放音乐的sampling rate 我现在要做一个app,需要获取系统当前正在播放音乐的sampling raete,app本身不播放音乐 ,也就是说要能获取其他app播放的音乐的sampling rate信息,有办法做到吗 解决方案 跨进程通信,需要回我就可以啦 解决方案二: android本地音乐播放(一)Android播放音乐

Android播放音乐案例分享

本文实例为大家分享了Android播放音乐案例的具体实现代码,供大家参考,具体内容如下 效果: 分析: 和上一篇文章的结构是一样的,只不过我们需要在这里里面加上播放音乐的一些操作: 其实也就是调用系统的播放音乐的API而已,写在服务里面就好, //媒体播放器 private MediaPlayer player; public void onCreate() { File file=new File(Environment.getExternalStorageDirectory(),"a.mp3

Android编程实现使用SoundPool播放音乐的方法

本文实例讲述了Android编程实现使用SoundPool播放音乐的方法.分享给大家供大家参考,具体如下: 如果应用程序要播放密集.短促的音效,这时还用MediaPlayer就显得不合适了.MediaPlayer存在如下缺点: 1.资源占用率较高,延迟时间较长 2.不支持多个音频同时播放 此时我们可以用SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加载20个音效,以后在程序中按音效的ID进行播放 SoundPool主要用于播放一些较短的声音

Android利用SeekBar实现简单音乐播放器

一.Demo简介 利用AIDL为Activity绑定服务,利用Handler机制,发送消息更新SeekBar的UI,利用计时器定时更新SeekBar的进度.实现对音乐的开始播放,到暂停,继续,以及停止播放的功能.以及实现拖动进度条播放音乐的功能. 二.AIDL接口 利用AIDL机制提供给MainActivity访问MyMusicService的方法,实现播放暂停等功能. 三.主要类代码 1.MyMusicService package my.com.mymusicp; import androi