【发布时间】:2019-12-31 15:31:59
【问题描述】:
我在从 url 播放音频时遇到了一些问题,即出现以下两个异常:
E/MediaPlayer(3387): error (1, -2147483648)
E/MediaPlayer(3387): Error (1,-2147483648)
在我的代码中,我声明了一个 MediaPlayer 对象和带有 URL 的字符串
MediaPlayer mMediaPlayer;
String url ="http://ciacho090.wrzuta.pl/audio/31h2JLMRCE7/eminem_soldier.mp3";
在我的 MainActivity 中,我通过默认构造函数初始化 mMediaPlayer 并设置流类型
mMediaPlayer = new MediaPlayer();
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
然后我在 url 上设置源并请求异步准备通过此代码捕获可能的异常:
try
{
mMediaPlayer.setDataSource(url);
mMediaPlayer.prepareAsync();
}
catch(IOException e)
{
e.printStackTrace();
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
catch (IllegalStateException e)
{
e.printStackTrace();
}
最后我设置了onPreparedListener:
mMediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
mp.start();
}
});
我遇到了上述异常,但音乐无法播放。在 Manifest 中,我已将这些权限和 min sdk 版本声明为 8
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> //i know- it's unneccesary
清单中的设置可能是导致问题或指向音乐文件的 url 链接的原因。我不知道它是否能够渐进式下载。也许你能给我一些链接吗?为什么它不起作用?
【问题讨论】:
-
这似乎是一个 html 页面。 MediaPlayer 不知道如何播放 html 页面。在浏览器中检查或使用 wget 等:ciacho090.wrzuta.pl/audio/31h2JLMRCE7/eminem_soldier.mp3 如果您可以获得指向实际 mp3 的链接,它应该可以工作。
-
我可以通过类似于 wget (Flashget 3.7) 的程序从ciacho090.wrzuta.pl/audio/31h2JLMRCE7/eminem_soldier.mp3 下载 mp3,但我的应用程序仍然无法运行。
-
我所知道的是,您发布的内容无法正常工作。服务器正在返回 HTML。如果您尝试过其他方法,那么您应该更新您的问题或发布一个新问题。
-
我没有尝试过别的,也许有人可以贴一些测试过的链接,然后我会知道这不是链接造成的错误?
标签: android url audio media-player