小编Rya*_*110的帖子

通过tcp流式传输语音

我编写了一个应用程序,通过TCP从客户端到服务器传输音频,但它不起作用,即没有声音输出.你能检查我的代码告诉我它有什么问题吗?

客户:

public void startStreaming() {


   Thread streamThread = new Thread(new Runnable() {

       @Override
       public void run() {
            try {

                int minBufSize =AudioRecord.getMinBufferSize(sampleRate, channelConfig, audioFormat);

                Log.d("VD ", "Bufer intioalised "+minBufSize);

                short[] buffer=new short[minBufSize];


                Log.d("VS","Buffer created of size .c" + minBufSize);
              //  DatagramPacket packet;

                final InetAddress destination = InetAddress.getByName(target.getText().toString());
                port=Integer.parseInt(target_port.getText().toString());

                Socket socket=new Socket(destination,port);

                DataOutputStream dos=new DataOutputStream(new BufferedOutputStream(socket.getOutputStream()));
                Log.d("VS", "Address retrieved.c");


                if (minBufSize != AudioRecord.ERROR_BAD_VALUE) {
                    recorder = new AudioRecord(MediaRecorder.AudioSource.MIC,sampleRate,channelConfig,audioFormat,minBufSize);
                Log.d("VS", "Recorder initialized.c");}


                if (recorder.getState() == AudioRecord.STATE_INITIALIZED){
                    Log.d("VS", "Recorder working....c");
                    recorder.startRecording();}

                BufferedWriter …
Run Code Online (Sandbox Code Playgroud)

java android tcp

5
推荐指数
1
解决办法
364
查看次数

UIView.init() 只能在主线程中使用(当我转到这个控制器时)

你好,这是我的控制器类

 class  passwordViewController: UIViewController {

 let load = UIActivityIndicatorView(style: .whiteLarge) // cause error

 let passwordTextFiled:UITextField = { // cause error

            let pass = UITextField()
            pass.placeholder = ""
            pass.addDoneButtonOnKeyboard()
            pass.textColor = .gray
            pass.textAlignment = NSTextAlignment.center
            return pass
        }()

        let barLabel:UILabel = {
            let bar = UILabel()
            bar.text=""
            bar.backgroundColor = Colors.yellow
            return bar
        }()
         // there is more code here.i avoid to copy
}
Run Code Online (Sandbox Code Playgroud)

当我直接运行这个控制器时,没有错误。但是当我从这里的其他控制器继续时会导致此错误

UIView.init() 只能在主线程中使用

更新1:

有一个带一个按钮的控制器,按钮转到控制器 B

这是我的转场代码:

 DispatchQueue.main.async {

            self.performSegue(withIdentifier: "passVC", sender: nil)

           }
Run Code Online (Sandbox Code Playgroud)

我在这里有 B 控制器的代码 swift …

ios swift

4
推荐指数
1
解决办法
5765
查看次数

标签 统计

android ×1

ios ×1

java ×1

swift ×1

tcp ×1