1.本地文件
通过查询数据库audio或video视图的duration字段。
这种方法针对手机上存储的本地文件有效,但对于网络上的在线文件则不起作用。
2.在线文件
对于在线文件,只能在MediaPlayer的prepareAsync后,当接收到onPrepared的时候通过MediaPlayer的getDuration方法取得总时长。
对于本地的APE音乐文件,也可以通过上述方法在prepare完成后取得总时长;虽然APE文件会被扫描到数据库中,但有时候扫描的时长不正确,就可以通过这种方法来校正。
当然,修正媒体扫描错误才是解决APE文件时长扫描不正确的最好方法。