Android记录流无法停止

时间:2014-03-24 08:09:23

标签: android inputstream record fileoutputstream

我想录制流媒体广播

现在这是我的代码

press.setOnClickListener(new OnClickListener()
    {

        @Override
        public void onClick(View v) {



            String filename = Environment.getExternalStorageDirectory().getAbsolutePath();
             filename += "/music.mp3";

             outputSource= new File(filename);
             bytesRead = -1;


            URL url;
            try {
                url = new URL("** URL **");
                 inputStream = url.openStream();
                    Log.d(LOG_TAG, "url.openStream()");

                    fileOutputStream = new FileOutputStream(outputSource);
                    Log.d(LOG_TAG, "FileOutputStream: " + outputSource);
                    while ((c = inputStream.read()) != -1) {
                        fileOutputStream.write(c);
                        bytesRead++;
                    }

            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

        }

    });

当我点击按钮时它会连续运行并且无法停止,当我点击停止按钮时它告诉我程序没有响应我必须等待或退出

那么我单击录制按钮时如何开始录制并在单击停止按钮时停止录制?

1 个答案:

答案 0 :(得分:0)

您在UI线程上执行网络操作。这不仅是错误的,这将抛出NetworkOnMainThreadException

使用AsyncTask或创建新的Thread,它将在取消时终止。