【Android笔记】Mediaplayer踩坑&测试用在线视频/音频

1,262 阅读2分钟

一、基本说明

1、官方文档:MediaPlayer 概览  |  Android 开发者  |  Android Developers (google.cn)

2、经典demo:Android MediaPlayer音频播放器详解 - 掘金 (juejin.cn)

3、视频与音频播放:MediaPlayer音频与视频的播放介绍 - 掘金 (juejin.cn)

  1. 关于播放音频
  • 设置Raw地址源
  • 通过文件夹目录:app私有目录也能正常播放 mPlayer.setDataSource(filesDir.absoluteFile.toString() + "/voiceAnnouncements" + "/music.wav")
  1. 关于播放视频
  • MediaPlayer + SurfaceView播放视频的方式
  • VideoView

二. 踩坑

1、可以播放的音频浏览器打开链接会是这样的:

1.参考链接:https://www.cambridgeenglish.org/images/506891-a2-key-for-schools-listening-sample-test.mp3

image.png

image.png

image.png

2、有些是这样的:【链接类似这个: http://sf1-hscdn-tos.pstatp.com/obj/media-fe/xgplayer_doc_video/flv/xgplayer-demo-360p.flv

  1. 这种是直接下了个音频文件,这种链接给mediaplayer播不了的;
  2. 如果使用同步播放回调会比较快,如果是异步的话读文件可能过好几分钟才会有onError回调。
  3. 待定:是啥原因导致浏览器处理不同

image.png

补充资料

1、Android允许密文配置最暴力的做法,清单文件配置:

android:usesCleartextTraffic="true"

2、测试在线链接:

  1. 测试用在线视频地址
  • 这个改成http也有效:https://www.cambridgeenglish.org/images/506891-a2-key-for-schools-listening-sample-test.mp3
  • https://www.cambridgeenglish.org/images/153149-movers-sample-listening-test-vol2.mp3

3、 响应头介绍:用头👴解决!前端必知必会的几个实用响应头 - 掘金 (juejin.cn)

  1. Content-Disposition:这个响应头可以决定内容是 预览 还是 下载
  2. Content-type配置成application/octet-stream的时候就算是预览模式也会是下载(因为预览模式无法识别正确的类型)

4、 下载框架:lingochamp/FileDownloader

  1. 参考接入:Android高能下载库FileDownloader_liulishuo.filedownloader_Gerry_Liang的博客-CSDN博客

5、 音频外链工具:

  1. HHTJim's部落格 Web App | 外链转换工具 | 分享链接转直链
  2. 音乐直链搜索|音乐在线试听 - by 刘志进实验室 (liuzhijin.cn)

6、 MediaPlayer中onCompletion和onError的坑

  1. OnCompletionListener当播放完成时自动播放下一曲可能会跳过