【Android Studio】研究一个只有三首歌的简易音乐播放器

本文探讨了一个基于Android Studio开发的简易音乐播放器,重点介绍了URI的概念及其组成部分,以及MediaPlayer的使用技巧,包括如何正确加载和播放流媒体。在实际应用中,播放器存在需要点击三次才能开始播放的问题,作者分析了可能的原因并分享了部分源代码。
摘要由CSDN通过智能技术生成

研究一个只有三首歌的简易音乐播放器

Tips:Things you need to know first.

  • 什么是URI?
    URI =Uniform Resource Identifier (统一资源标识符)
    是用于标识某一互联网资源名称的字符串
    主要包括三个部分
    ①主机名
    ②标识符
    ③相对URI
    eghttp://b.c/d/e.f (假设b.c是一个可用的域名,e.f是一个标准的文件)
    这是一个可通过HTTP协议访问的资源,位于主机b.c上,通过URI中的字符串"/d"访问主机上的"d"文件夹,通过"e.f"请求访问主机上"/d/e.f"这个文件。

  • MediaPlayer在使用时的一个注意事项
    在使用MediaPlayer播放一段流媒体的时候,需要使用prepare()或prepareAsync()方法把流媒体装载进MediaPlayer,然后才可以调用start()播放流媒体。那最好使用prepaAsync()(异步方式)装载流媒体资源,主要避免还没有装载完成就调用start()而产生报错的情况。

  • 附上一些MediaPlayer方法介绍在后方;

进入正文

首先是xml布局效果,
大概就是布局程这个样子
出现问题:播放按钮需要点击三次(即开始-暂停-开始)后,才开始播放音乐
在这里插入图片描述
上图为来自app的抗议,也许某天可以试试开个子线程工作吧。

public void play()
    {
        try {
            if (mediaPlayer == null) 
            {
                mediaPlayer = MediaPlayer.create(this, songs[currentIndex]);
                mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                mediaPlayer.prepareAsync(); //使用异步的方式装载流媒体资源

                mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                    public void onPrepared(MediaPlayer mediaPlayer) {
                        mediaPlayer.start();
                    }
                });
                Log.d("MyBinder", "play the music");
            } else if((mediaPlayer != null) && (!mediaPlayer.isPlaying())){  //暂停后再开始
                    mediaPlayer.seekTo(currentPosition);
                    mediaPlayer.start();
                    Log.d("MyBinder", "start ");
                }

        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }

在以上代码中,第一次点击开始按钮时,并没有进入if(mediaPlayer == null)中。尚未解决,如果解决了会写在评论里。

附上源代码:
/代码可能存在很多冗余部分,暂时只求达到效果/
MusicService:
在我刚开始使用mediaPlayer.pause()的时候,好像没有从暂停的地方开始播放,所以我又使用了MediaPlayer的getCurrentPosition()与SeekTo(); 来实现我想要的效果。
//别人的pause()都可以完美实现,wired!


import android.app.Service;
import android.content.Intent;
import android.media.AudioManager;
import android.media.MediaPlayer;
import andro
《嘟嘟音乐》是我自己写的Android,若有不足之处请大家谅解 1.首页实现读取本地Music本地文件夹中的MP3文件然后放进listview里面 2.实现了用户的用户的登录注册页面,登录过后用户可以进行自己的信息修改,实现了服务器的数据交互问题 3.实现了管理员登录,使用的是与Tomcat服务器进行数据交互验证信息的正确性,我使用的是myeclipse进行布置的服务器信息,此时使用的是SQLserver 2008 数据库存储的管理员的信息,读取完以后然后返回到管理界面 4.在嘟嘟音乐的管理界面,我实现了策划菜单以及卡片式布局来管理普通用户信息,以及用户信息的增删改查。查询使用的是以UserId或者昵称迷糊查询的方式进行查询的。 5.我使用的SQL server2008 的数据库文件我已经全部导出了,大家可以自行进行导入 6.我使用的myeclipse的项目是Servlet进行的验证app管理员信息的邓丽,项目我已经全部导出。放在压缩包里面 7.我使用的是Android Studio,我把文件布局截图放在压缩包里面,还有几个需要注意的地方,特别的坑,尤其是大家需要注意build.gridle(app)这里面大家需要注册导包,你并且配置好自己的SDK。大家还需要注意就是Android的注册文件里面也需要注意,关于一些权限的问题 8.哈哈,大概的的就写到这里了,写的不好的地方大家多见谅,我也是在学习阶段,把自己的写的东西给大家贡献出来以供大家参考学习使用。我还在压缩包里面放置了视频演示的链接信息,大家可以看看。如果感觉写的不错的话,请好评哦。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值