Android应用--简、美音乐播放器增加音量控制
Android应用--简、美音乐播放器增加音量控制
package com.wwj.sb.domain;/*** 2013/5/7 mp3实体类* * @author wwj* */
public class Mp3Info{private long id; // 歌曲IDprivate String title; // 歌曲名称private String album; // 专辑private String artist; // 歌手名称private long duration; // 歌曲时长private long size; // 歌曲大小private String url; // 歌曲路径private String lrcTitle; // 歌词名称private String lrcSize; // 歌词大小public Mp3Info() {super();}/*** * @param id* @param title* @param album* @param artist* @param duration* @param size* @param lrcTitle* @param lrcSize* @param url*/public Mp3Info(int id, String title, String album, String artist,int duration, int size, String lrcTitle, String lrcSize,String url) {super();this.id = id;this.title = title;this.album = album;this.artist = artist;this.duration = duration;this.size = size;this.lrcTitle = lrcTitle;this.lrcSize = lrcSize;this.url = url;}@Overridepublic String toString() {return "Mp3Info [id=" + id + ", title=" + title + ", album=" + album+ ", artist=" + artist + ", duration=" + duration + ", size="+ size + ", url=" + url + ", lrcTitle=" + lrcTitle+ ", lrcSize=" + lrcSize + "]";}public long getId() {return id;}public void setId(long id) {this.id = id;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public String getAlbum() {return album;}public void setAlbum(String album) {this.album = album;}public String getArtist() {return artist;}public void setArtist(String artist) {this.artist = artist;}public long getDuration() {return duration;}public void setDuration(long duration) {this.duration = duration;}public long getSize() {return size;}public void setSize(long size) {this.size = size;}public String getUrl() {return url;}public void setUrl(String url) {this.url = url;}public String getLrcTitle() {return lrcTitle;}public void setLrcTitle(String lrcTitle) {this.lrcTitle = lrcTitle;}public String getLrcSize() {return lrcSize;}public void setLrcSize(String lrcSize) {this.lrcSize = lrcSize;}}
<RelativeLayoutandroid:id="@+id/ll_player_voice"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_below="@id/header_layout"android:background="@drawable/player_progresslayout_bg"android:visibility="gone" ><ImageViewandroid:id="@+id/iv_player_min_voice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_centerVertical="true"android:background="@drawable/volume_min_icon" /><ImageViewandroid:id="@+id/iv_player_max_voice"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentRight="true"android:layout_centerVertical="true"android:background="@drawable/volume_max_icon" /><SeekBarandroid:id="@+id/sb_player_voice"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_centerVertical="true"android:layout_toLeftOf="@id/iv_player_max_voice"android:layout_toRightOf="@id/iv_player_min_voice"android:background="@drawable/voice_seekbar_bg"android:paddingLeft="5dp"android:paddingRight="5dp"android:progressDrawable="@drawable/voice_seekbar_progress"android:thumb="@drawable/voice_seekbar_thumb" /></RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@android:id/background"android:drawable="@drawable/voice_seekbar_bg"></item><item android:id="@android:id/progress"><clip android:drawable="@drawable/voice_seekbar_one" /></item>
</layer-list>
/drawable、voice_seekbar_thumb.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:state_pressed="true" android:drawable="@drawable/voice_thumb_press" /><item android:drawable="@drawable/voice_thumb_normal" />
</selector>
private AudioManager am; //音频管理引用,提供对音频的控制RelativeLayout ll_player_voice; //音量控制面板布局int currentVolume; //当前音量int maxVolume; //最大音量ImageButton ibtn_player_voice; //显示音量控制面板的按钮SeekBar sb_player_voice; //控制音量大小// 音量面板显示和隐藏动画private Animation showVoicePanelAnimation;private Animation hiddenVoicePanelAnimation;
showVoicePanelAnimation = AnimationUtils.loadAnimation(PlayerActivity.this, R.anim.push_up_in);hiddenVoicePanelAnimation = AnimationUtils.loadAnimation(PlayerActivity.this, R.anim.push_up_out);//获得系统音频管理服务对象am = (AudioManager)getSystemService(Context.AUDIO_SERVICE);currentVolume = am.getStreamVolume(AudioManager.STREAM_MUSIC);maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC);sb_player_voice.setMax(maxVolume);
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"><alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="200"/><translate android:fromYDelta="-100%" android:toYDelta="0" android:duration="200"/>
</set>
push_up_out.xml
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"><alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="200"/><translate android:fromYDelta="0" android:toYDelta="-100%" android:duration="200"/>
</set>
ibtn_player_voice = (ImageButton) findViewById(R.id.ibtn_player_voice);ll_player_voice = (RelativeLayout) findViewById(R.id.ll_player_voice);sb_player_voice = (SeekBar) findViewById(R.id.sb_player_voice);
ibtn_player_voice.setOnClickListener(ViewOnClickListener);sb_player_voice.setOnSeekBarChangeListener(new SeekBarChangeListener());
ibtn_player_voice用来控制动画显示面板
case R.id.ibtn_player_voice: //控制音量voicePanelAnimation();break;
//控制显示音量控制面板的动画public void voicePanelAnimation() {if(ll_player_voice.getVisibility() == View.GONE) {ll_player_voice.startAnimation(showVoicePanelAnimation);ll_player_voice.setVisibility(View.VISIBLE);}else{ll_player_voice.startAnimation(hiddenVoicePanelAnimation);ll_player_voice.setVisibility(View.GONE);}}
/*** 实现监听Seekbar的类* * @author wwj* */private class SeekBarChangeListener implements OnSeekBarChangeListener {@Overridepublic void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {switch(seekBar.getId()) {case R.id.audioTrack:if (fromUser) {audioTrackChange(progress); // 用户控制进度的改变}break;case R.id.sb_player_voice:// 设置音量am.setStreamVolume(AudioManager.STREAM_MUSIC, progress, 0);break;}}
转载于:https://www.cnblogs.com/snake-hand/p/3157381.html
Android应用--简、美音乐播放器增加音量控制相关推荐
- Android应用--简 美音乐播放器原型放送(作者 小巫)
Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...
- Android应用--简、美音乐播放器获取专辑图片(自定义列表适配器)
Android应用--简.美音乐播放器获取专辑图片(自定义列表适配器) 2013年7月3日简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词 ...
- Android应用--简、美音乐播放器原型放送(作者:小巫)
Android应用--简.美音乐播放器原型放送 2013年7月5日简.美音乐播放器开发 前言:小巫的简.美音乐播放器从5月7号开始开发,之前以为时间很充足,也没有估量整个软件的需求,如果简单实现基本的 ...
- Android应用--简、美音乐播放器实现专辑倒影效果
Android应用--简.美音乐播放器实现专辑倒影效果 2013年7月4日 简.美音乐播放器开发 第二阶段已增加功能: 1.歌词滚动显示 2.来电监听 3.音量控制 4.左右滑动切换歌词与专辑界面 5 ...
- Android应用开发--MP3音乐播放器代码实现(二)
2013年5月25日 简.美音乐播放器开发 小巫在这里罗列这个播放器已经实现的功能: 1. 自动显示音乐列表 2. 点击列表播放音乐 3. 长按列表弹出对话框 4. 暂停音乐 5. ...
- Android应用开发--MP3音乐播放器滚动歌词实现
Android应用开发--MP3音乐播放器滚动歌词实现 2013年6月2日 简.美音乐播放器开发记录 -----前话 有网友给我博客评论说,让我借鉴好的Android代码,代码贴出来的时候最好整体先 ...
- Android应用开发--MP3音乐播放器Service实现
Android应用开发--MP3音乐播放器Service实现 2013年5月29日简.美音乐播放器开发记录 让网友们久等啦,关于简.美音乐播放器的开发,最重要的Service类总算是要发博了.关于An ...
- Android应用开发 MP3音乐播放器滚动歌词实现
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Andr ...
- android 存放音频文件夹里,Android 实现简单的音乐播放器效果(音频文件的三种存放)...
Android 实现简单的音乐播放器效果(音频文件的三种存放).三种方法主要使用到的类 MediaPlayer.create() getAssets() new Mediaplayer() - 几个控 ...
最新文章
- 列子御风 大道至简 心诚天人合一
- JS 原生 AJax
- Chrome扩展应用Angular state inspector的使用方法
- ABAP,Java, nodejs和go语言的web server编程
- 2018年全球智能手机销售收入增至5220亿美元 但销量却下降了
- SQL 查询笔记:子查询,分组查询,左连接查询。。。。。
- 虚拟机实时迁移解决方案
- STM32F4XX高效驱动篇2 I2C
- Oracle与MySQL的几点区别
- 微信小程序 测试号 申请
- Solr Facet
- 计算机用word做海报,【2人回答】电脑Word怎么做海报?-3D溜溜网
- 旅客因航班耽搁殴打工作职员被拘
- hdu5879 Cure( 1/(n^2)的快速收敛性质)
- 2020民泰银行软件测试,2020应届生银行工作一个半月感受
- http://nianjian.xiaze.com/tags.php?/%E6%BD%BC%E5%85%B3%E5%B9%B4%E9%89%B4/1/13595315666/
- 2021牛客训练营 F.魏迟燕的自走棋(贪心并查集)
- linux下rsync命令,Linux 命令之rsync命令详解
- 模式对象和用户权限管理
- 最长公共前后缀(KMP中next数组求法)
热门文章
- Kano模型在用户调研中的应用——CRM工具调研实例
- python语言是非开源语言_python是非开源语言吗
- 变步长梯形法与龙贝格算法
- 如何对第一个值相同的列表中的元组求和
- 油猴安装使用[自留]
- c语言程序功能实现不了,请高手帮忙看看我的程序,编译不报错,但是实现不了功能...
- flink Table API 与SQL入门实战
- scala case class入门
- 实战!手把手教你如何编写一个Linux驱动并写一个支持物联网的LED演示demo
- 从0开始html前端页面开发_CSS设置图像透明度