首页 > 系统 > Android > 正文

Android 多媒体中的音乐播放器

2019-11-08 01:26:20
字体:
来源:转载
供稿:网友

MediaPlayer 对音频操作(核心)

1.Android-播放应用内音频文件 //实例化一个MediaPlayer

mediaPlayer = MediaPlayer.create(this, R.raw.cheng);

//R.raw.cheng为mp3音频文件路径 //设置类型

mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);

现在AndroidManifest中添加权限

< uses-permission Android:name=”android.permission.READ_EXTERNAL_STORAGE” />

主界面我们设置一个SeekBar

//设置进度条的拖动事件 sb_main_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); } });

//设置音源 try {

//播放内存卡中的音频文件 mediaPlayer.setDataSource(this, Uri.parse("file://mnt/sdcard/Music/gui.mp3"));//播放网络音乐 //mediaPlayer.setDataSource(this, Uri.parse("http://192.168.43.240:8080/jike.mp3"));

2.Android-播放sd卡文件

//准备一下(内存卡) //mediaPlayer.prepare(); //准备(异步准备) mediaPlayer.prepareAsync(); } catch (IOException e) { e.printStackTrace(); } //设置准备完成的监听 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_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); } }

写一个MyThread类,为了让进度条随着播放进度动起来

class MyThread extends Thread{ @Override public void run() { super.run(); while(sb_main_seekbar.getProgress()<=sb_main_seekbar.getMax()){//获取当前音乐播放的位置 int currentPosition=mediaPlayer.getCurrentPosition(); //让进度条动起来 sb_main_seekbar.setProgress(currentPosition); } } }

注意:播放网络音频文件需要提供一个局域网 我这里暂时用Tomcat替代服务器,找到apache文件夹中的bin文件夹,打开startup.bat,保证局域网打开,将要播放的mp3文件放到 apache/webapps/ROOT子文件夹中 运行cmd,输入命令“ipconfig”在“无线局域网适配器 无线网络连接:”后缀有IPv4地址,可以运行APP的时候输入网址“192.168.43.240:8080/jike.mp3”便会下载 当然,这里遇到过一个小问题,那就是cmd输入命令“ipconfig”,会报一个“‘ipconfig’不是内部或外部命令,也不是可运行的程序或批处理文件”的错误 是因为环境变量设置缺失的问题,只要在环境变量设置中的path编辑中,末尾加入一个分号(;),在加入内容“c:/windows/system32”,然后再运行cmd命令,便可查看ip地址。


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