【问题标题】:Android record stream can't stopAndroid记录流无法停止
【发布时间】:2014-05-01 11:46:38
【问题描述】:

我想录制流媒体广播

现在这是我的代码

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();
            }

        }

    });

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

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

【问题讨论】:

  • 您无法在主线程上执行网络 UI 操作。您必须使用 AsyncTask 或 Thread。还要在 runOnUiThread() 方法中更新你的 UI。

标签: android inputstream record fileoutputstream


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-27
    • 2016-05-31
    • 1970-01-01
    • 2014-03-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多