播放无线电流 - shoutcast v2 - MediaPlayer和PrepareAsync - 无法正常工作

时间:2015-08-18 10:16:41

标签: java android android-asynctask android-mediaplayer android-4.3-jelly-bean

我正在尝试编写一个播放音频流的播放器 - shoutcast v2(我尝试了所有格式播放流 - .pls,.m3u,.mp3和clean http://example.com:port)。

以下代码在模拟器中运行,适用于手机中兴(Android 4.1.2)但不起作用,例如。索尼Xperia M(Android 4.3)并不知道为什么。

代码已经以各种方式编写,但仍然没有解决问题。

P.S。 Play商店中的一个应用程序也不起作用,播放(MaxItalo播放器),但另一个应用程序(例如RadioParty)再现播放。

我的代码(代码的一部分):

private class PlayM extends AsyncTask<Void,Void,Void>
    {       
        @Override
        protected void onPreExecute() {
            dialog.show();
            mPlayer = new MediaPlayer();
            mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        }

        @Override
        protected Void doInBackground(Void... params) {
            try {
                mPlayer.setDataSource(getApplicationContext(), Uri.parse(url));
                mPlayer.prepareAsync();
            } catch (IllegalArgumentException e1) {
                errorToast.setText("IllegalArgumentException "+e1);
                errorToast.show();
            } catch (IllegalStateException e2) {
                errorToast.setText("IllegalStateException "+e2);
                errorToast.show();
            } catch (IOException e3) {
                errorToast.setText("IOException "+e3);
                errorToast.show();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            mPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
                @Override
                public void onPrepared(MediaPlayer player) {
                    dialog.hide();
                    player.start();
                }
            });
        }

    }

    public void clickPlay(View v) {
        if(mPlayer==null) {
            new PlayM().execute();
        }
    }  

0 个答案:

没有答案