简单的安卓音乐播放器

编程入门 行业动态 更新时间:2024-10-15 08:20:12

安卓基础培训结束了,自己随便做了一个简单的音乐播放器,第一个安卓小项目,先晒晒图片~~~~

界面灵感来自,迅雷看看播放器,在安卓里面播放音频用到时MediaPlayer类

比较复杂点的有音轨的控制,进度和音轨控制用到的是seekBar,自定义样式seekbar_img.xml代码如下:

 

< layer-list  xmlns:android ="http://schemas.android/apk/res/android"   >

     < item
        
android:id ="@+android:id/background"
        android:drawable
="@drawable/bbar_bg" />
     < item
        
android:id ="@+android:id/progress"
        android:drawable
="@drawable/bbar" />

</ layer-list >

还有音轨的控制:

 

< layer-list  xmlns:android ="http://schemas.android/apk/res/android"   >

     < item
        
android:id ="@+android:id/background"
        android:drawable
="@drawable/bar_bg" />
     < item
        
android:id ="@+android:id/progress"
        android:drawable
="@drawable/bar" />

</ layer-list >

在实现歌词显示时有点复杂,不过仔细分析歌词文件,就能找到解决办法,歌词文件每句前面都有对应的时间,只要算出当前播放的时间,

然后判断是否匹配,如果匹配就用I/O操作将歌词文件中的对应的歌词读取出来

 

View Code /**
     * 读取歌词文件
     
*/
     public  static String read(File path, String filename)
    {
        StringBuilder sb =  new StringBuilder();
        Set<String> lrcs = FileUtil.getLrcs(path);
         // 获取歌词文件名
        String lrcfile=filename.substring(0,filename.indexOf("."));        
             try
            {                
                BufferedReader br =  new BufferedReader( new InputStreamReader( new FileInputStream(path+"/"+lrcfile+".lrc"),"GBK"));
                String con = "";
                 while ((con = br.readLine()) !=  null)
                {
                    sb.append(con + "\n");
                }
                br.close();
            }  catch (Exception e)
            {
                e.printStackTrace();
            }    
         return sb.toString();

    }

接下来就是换算时间了,将当前播放时间换算成时分秒,

 

View Code public  static String formatMS( int ms)
    {
         int s = ms / 1000; //  秒
         int m = s / 60; //  分
         int add = s % 60; //  秒    
        String con = "";
         if (add > 10 && m > 10)
            con = m + ":" + add;
         else  if (add < 10 && m > 10)
            con = m + ":0" + add;
         else  if (m < 10&& add < 10)
            con = "0" + m + ":0" + add;
         else  if (m > 10 && add < 10)
            con = "" + m + ":0" + add;    
         else  if (m < 10 &&  add > 10)
            con = "0" + m + ":" + add ;    
         return con;
    }

播放时用到一个子线程,用来跟踪播放进度,显示歌词进度,

 

//  子线程监听进度的改变
     private Runnable thread =  new Runnable()
    {
        @Override
         public  void run()
        {
             // 更新视图
            updateTextView();
             // 自动播放下一首
            playNext( true);
             // 显示歌词
            showLrc();
            handler.postDelayed(thread, 1000);
        }
    };

简单介绍到这里,代码下载点击:

 /Files/Jaylong/安卓音乐播放器.zip

 

转载于:https://wwwblogs/Jaylong/archive/2012/05/01/android.html

更多推荐

简单的安卓音乐播放器

本文发布于:2023-06-14 08:57:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1458731.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:播放器   简单   音乐

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!