小编Ala*_*hya的帖子

通过WiFi在Android手机之间流式传输语音

我正试图通过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)

audio android voice stream

30
推荐指数
2
解决办法
4万
查看次数

等待另一个活动的结果

在一项活动(比如说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并返回该值.因此,在启动时,结果不会立即可用

concurrency android synchronization android-activity

2
推荐指数
1
解决办法
7235
查看次数