为了账号安全,请及时绑定邮箱和手机立即绑定

歌曲无法播放

55dc1f6a00011c0b05000184.jpg

55dc1f6a0001da4105000258.jpg

李老师,我的歌曲没法播放。我在handlePlayButton()方法里面加MyLog.d(TAG,"播放按钮被点击了!"),在LogCat里面看到了日志输出“播放按钮被点击了!”,这说明handlePlayButton()方法是被执行了的。然后我又在playSong()方法里面加MyLog.d(TAG,"playSong()方法被执行了!"),但是在LogCat没有得到日志输出“playSong()方法被执行了!”,这应该说明playSong()方法没有被调用,可是我又找不出为什么没有调用的原因,您觉得可能会是什么原因呢?

正在回答

3 回答

这里说明一下,李老师的课程里面Const类中定义的歌曲文件名是"_00000.m4a"样式的,而我却写成了"_00000”样式,这才导致了歌曲不能播放。我做的更改--->assetManager.openFd(fileName + “.m4a”)<---的效果和直接在Const类中将歌曲文件名定义为"_00000.m4a"样式的效果是一样的。

0 回复 有任何疑惑可以回复我~

问题已经解决,中间过程的艰辛自不必说,直接说原因。

  1. assets资源文件中歌曲名称和Const类中歌曲名称不同。其实只是多了一个下划线。如Const类中的名称为“_00000”, assets资源文件中却是"__00000"。怎么样?问题隐蔽吧?

  2. MyPlayer类中assetManager.openFd(fileName)出现问题,我自己写了个小Demo验证使用AssetManager播放应用的资源文件中的歌曲时发现,参数fileName不仅仅是文件名称,还要包括后面的格式符号“.m4a”才能正常播放。所以我把assetManager.openFd(fileName)中的参数"fileName"改为"fileName + ".m4a"",即assetManager.openFd(fileName + “.m4a”)。好了,问题解决了。问题不大,但是考验细心。希望我的自问自答能对大家有帮助!

  3. 55dd89970001125402880332.jpg

  4. 55dd8997000199d305000129.jpg

0 回复 有任何疑惑可以回复我~

http://img1.sycdn.imooc.com//55dd70bf00011cfa10060255.jpg

今天,我又真机调试了,发现playSong()方法可以执行了,但是还是不能播放歌曲,所以应该是playSong()方法里面出现问题。

于是,我一行一行的设置Toast,查看playSong()方法中代码执行到哪一步出现问题,结果如图。

  1. 第一个toast可以显示

  2. 第二个toast也可以显示(第一首歌曲的文件名"_00000"),说明传入的参数是正常的,不是参数传入的参数的问题

  3. 第三个toast没有显示,说明代码没有执行到这一步,那就说明是上一行代码出现问题。

不幸的是,始终没有发现问题出在哪? 我对着您的视频仔细核对了我的代码,是一模一样的。 - -!

唉,我还会坚持Debug直到找出问题的,这里就算做个记录了。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android猜歌游戏是这样炼成的
  • 参与学习       27729    人
  • 解答问题       433    个

手把手教你完成一款猜歌类游戏,向你展示游戏实现的全部细节

进入课程

歌曲无法播放

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号