我正试图通过WiFi将音频从1个Android流式传输到另一个Android.在查看了一些示例后,我制作了2个应用程序,每个应用程序中只有一个活动,1个用于捕获和发送音频,另一个用于接收.
我使用了Audiorecord和Audiotrack课程来捕捉和播放.然而,我只是听到一些噼里啪啦的声音(虽然我回复后我做了一些改变后现在停止了)
发送语音的活动.
public class VoiceSenderActivity extends Activity {
private EditText target;
private TextView streamingLabel;
private Button startButton,stopButton;
public byte[] buffer;
public static DatagramSocket socket;
private int port=50005; //which port??
AudioRecord recorder;
//Audio Configuration.
private int sampleRate = 8000; //How much will be ideal?
private int channelConfig = AudioFormat.CHANNEL_CONFIGURATION_MONO;
private int audioFormat = AudioFormat.ENCODING_PCM_16BIT;
private boolean status = true;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
target = (EditText) findViewById (R.id.target_IP);
streamingLabel = (TextView) findViewById(R.id.streaming_label);
startButton = (Button) findViewById …Run Code Online (Sandbox Code Playgroud) 在一项活动(比如说A)中,我必须根据另一项活动(B)的结果执行某项任务.我使用startActivityForResult()启动活动B. 伪代码是这样的:(在活动A中)
//Statements
//startActivityForResult(activityB)
//get the result in some local variable for activity A. result is a boolean
//if(result==true) do something
//else do something else
Run Code Online (Sandbox Code Playgroud)
现在我面临的问题是,在启动活动B之后,它不会等待结果从B到达.相反,它继续并使用布尔结果的默认值.有解决方案吗
如果这个特定的块在另一个线程中,我可以写一个synchronized块并在启动活动B后发出wait(),然后在onActivityResult()中发出notify().但由于只有一个线程,这不是一个选项吗?
应该提到activityB接受用户输入Yes/No并返回该值.因此,在启动时,结果不会立即可用