音频流不在智能手机中播放

时间:2016-01-19 07:46:07

标签: android html5 audio streaming audio-streaming

我试图构建一个用于播放在线广播的Android应用程序。代码正在模拟器中正常工作。但是当安装在手机中时它不起作用。

MediaPlayer mediaPlayer = new MediaPlayer();
String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC";
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(url);
mediaPlayer.prepare(); // might take long! (for buffering, etc)
mediaPlayer.start();

链接格式有问题吗?我尝试在html5中播放相同的链接,它在桌面上工作正常,但在手机中打开链接不起作用的同一网站。还有任何问题或html5中的任何组件在智能手机上无法在桌面上工作吗?  我需要播放实时流而不是像mp3这样的静态文件。您可以从www.listenlive.eu/uk.html获取一些URL并尝试播放。我的代码中的URL仅来自此网站。下载VLC文件并使用任何文本编辑器打开它,您将获得URL。

1 个答案:

答案 0 :(得分:0)

使用mediaPlayer.prepareAsync();而不是mediaPlayer.prepare();因为你是从网上流媒体,还添加了互联网权限

 <uses-permission android:name="android.permission.INTERNET"/>

另外

String url = "http://5293.live.streamtheworld.com:3690/JACK2_LOWAAC_SC";

对我来说不起作用而是使用

 final String url = "http://vprmix.streamguys.net/vprmix64.mp3";

private boolean isPLAYING = false;

     public void streamAudio(String url) {

        if (!isPLAYING) {
            isPLAYING = true;
            mediaPlayer = new MediaPlayer();
            try {
                mediaPlayer.setDataSource(url);
               mediaPlayer.prepareAsync();
                mediaPlayer.start();
            } catch (IOException e) {
                e.printStackTrace();
                Log.e("mediaPlayer", "prepare() failed");
            }
        } else {
            isPLAYING = false;
            stopPlaying();
        }
    }

    private void stopPlaying() {
        mediaPlayer.release();
        mediaPlayer = null;
    }