android - 我无法通过 MediaPlayer Android 从 URL 播放音频

标签 android url audio media-player

我在从 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中,我已经声明了这些权限并将最小sdk版本设置为8

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> //i know- it's unneccesary

也许 list 中的设置是问题的原因或音乐文件的 url 链接。不知道是否可以渐进式下载。也许你能给我一些链接吗?为什么它不起作用?

最佳答案

您的 URL 返回 html。 MediaPlayer 不知道有关播放 HTML 页面的任何信息。仅仅因为它以 .mp3 结尾并不意味着它是 mp3。

您只需在浏览器中访问此页面即可轻松检查:

http://ciacho090.wrzuta.pl/audio/31h2JLMRCE7/eminem_soldier.mp3

这是一个“真实的”mp3,您可以使用它进行测试:

http://ia700200.us.archive.org/1/items/testmp3testfile/mpthreetest.mp3

简而言之:确保您传递的网址返回 mp3 或其他受支持的音频格式。

关于android - 我无法通过 MediaPlayer Android 从 URL 播放音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17391712/

相关文章:

javascript - 当php获取字符串在当前url中时如何重定向URL

python - 使用 Flask 将表单数据保存在 url 中

audio - 在 Cocos2D-X 中尝试启用音乐暂停时出现 "SimpleAudioEngine has not been declared"错误

android - 如何将我的图库应用程序与 android 中的默认图库集成

android - 有人能告诉我为什么我的工具栏中的文本背景是白色的吗?

java - Android 2.2 上的 Admob 6 无法正常工作

c# - 如何判断主音量是否静音?

android - 检测用户是否与手机交互?

python-3.x - 使用Python文本搜索YouTube视频源代码

javascript - 有没有办法手动控制 YouTube HTML5 播放器的音量(JavaScript/Inspect Element)?