我无法通过MediaPlayer Android播放URL中的音频

问题描述 投票:2回答:1

我在播放来自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();
            }
        });

我超越了例外,音乐无法播放。在清单中,我已经声明了这些权限,并且最小SDK版本为8

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

也许清单中的设置是问题的原因或指向音乐文件的URL链接。我不知道它是否能够逐步下载。也许可以给我一些链接吗?以及为什么它不起作用?

android url audio media-player
1个回答
3
投票

您的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或其他受支持的音频格式。

© www.soinside.com 2019 - 2024. All rights reserved.