我正在尝试创建一个Android应用,该应用收集各种远程歌曲链接并为用户播放它们。该应用程序使用Android的MediaPlayer,每个歌曲链接都重定向到MediaPlayer处理并最终播放的流URL。
但是,其中一些歌曲链接实际上会重定向并提供 HTTP 404错误,因为它们不可用,我想知道是否有任何方法可以立即直接处理/捕获这些HTTP错误。到目前为止,MediaPlayer所做的是发出以下信号:error (1, -2147483648)
...尝试与数据源连接10次之后,然后我可以捕获该通知以通知用户该歌曲不可用。
当然,虽然让用户等待10次重试会花费太多时间,所以我想知道是否有一种方法可以捕获MediaPlayer发生HTTP错误的第一刻,而不必在发送之前检查URL到MediaPlayer,或者必须通过连接到MediaPlayer的网络代理来破解和管理异常。
MediaPlayer给出的10次异常:07-16 05:16:30.549: E/MediaHTTPConnection(16698): IOException: java.io.IOException: Http Response: 404
最佳答案
如果错误弹出10次,并且每次发出错误,那么我看不到为什么简单的try-catch循环不起作用:
try {
// download URL
} catch (IOException e) {
// presumably an exception is thrown the first time it gets 404 so put the error handling code here
}
另外,我是否建议您使用
ExectutorService
之类的东西从URL下载多线程,以便您向其提交Runnable
类并同时运行它们(即每个视频的下载任务,以便它们同时下载)