如何在流式传输URL时应用线程。?

时间:2013-07-01 05:39:17

标签: android multithreading streaming shoutcast

我有一个代码可以在shoutcast服务器上播放在线广播。当应用程序启动时,它会流式传输文件并播放它。现在的问题是,如果我没有网络连接或不正确的网络连接,应用程序的状态将永远保持“流”模式。我想添加一个线程与这个流媒体的东西应该等待20秒,如果它无法连接到服务器,它应该抛出一个事件退出应用程序说明“不正确的网络连接”。 或者,如果有任何其他想法,也将受到赞赏..播放媒体的代码是,

public void playFm() {
    Uri myUri = Uri.parse("http://108.166.161.206:8826/;stream.mp3");
    try
    {
        if (mp == null) {
            this.mp = new MediaPlayer();
        } else {
            mp.stop();
            mp.reset();
        }
        mp.setDataSource(this, myUri); // Go to Initialized state
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        streaming=true;
        progress.setVisibility(View.VISIBLE);
        stream.setVisibility(View.VISIBLE);
        stop.setEnabled(false);
        mp.setOnPreparedListener(this);
        mp.setOnBufferingUpdateListener(this);

        mp.setOnErrorListener(this);
        mp.prepareAsync();
        Log.d(TAG, "LoadClip Done");
    } catch (Throwable t) {
        Log.d(TAG, t.toString());
    }
}

Thanx提前全部..

2 个答案:

答案 0 :(得分:2)

以下是答案..

  iRunnable=new Runnable() 
            {

                        @Override
                        public void run() 
                        {
                            //do something
                         }
                    };

和其他功能

 Thread th = new Thread() {
        @Override
        public void run() {

                try {
                    Thread.sleep(1000*15);
                    //your code here..
                    iHandler.postDelayed(iRunnable,20*1000);
                } 
catch (InterruptedException ie) 
          {

          }
    };
    th.start();
    }

答案 1 :(得分:0)

首先,您必须检查Internet连接并向Androidmanifest.xml文件添加网络状态权限