我编写了一个应用程序,通过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) 你好,这是我的控制器类
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 …