gpt4 book ai didi

android - 音频捕获Android无法正常工作

转载 作者:行者123 更新时间:2023-12-03 02:02:19 25 4
gpt4 key购买 nike

我的应用程序需要实现音频捕获功能。
我遵循了一些教程和Google指南。所以我做了下面的代码。
它可以正常工作,直到第二次尝试。当我一次捕捉声音时,它就能回复我所说的话。
在第二次尝试中,当我认为必须重写创建的文件时,应用程序崩溃。可能我忽略了一些方法。
你可以帮帮我吗 ?

    protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

inizializzaView();
Media();
SetListner();
}
public void inizializzaView(){

Text=(TextView)findViewById(R.id.textview);
Registra=(Button)findViewById(R.id.bottonereg);
Ascolta=(Button)findViewById(R.id.bottoneascolta);
Stop=(Button)findViewById(R.id.bottonestop);

Stop.setEnabled(false);
Ascolta.setEnabled(true);








}

public void SetListner(){

Registra.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {



start(v);


}
});

Stop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {



stop(v);


}
});
Ascolta.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {


play(v);


}
});


}
public void Media(){


outputFile = Environment.getExternalStorageDirectory().
getAbsolutePath() + "/recording.3gp";;

// android voice recorder

media = new MediaRecorder();
media.setAudioSource(MediaRecorder.AudioSource.MIC);
media.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
media.setAudioEncoder(MediaRecorder.OutputFormat.AMR_NB);
media.setOutputFile(outputFile);
}


public void start(View view){
try {
media.prepare();
media.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Registra.setEnabled(false);
Stop.setEnabled(true);
Toast.makeText(getApplicationContext(), "Stai registrando Burlone !!!", Toast.LENGTH_LONG).show();

}
public void stop(View view){
media.stop();
media.release();
media = null;
Stop.setEnabled(false);
Registra.setEnabled(true);
Toast.makeText(getApplicationContext(), "Registrazione Terminata",
Toast.LENGTH_LONG).show();
}

public void play(View view) {

try{

myPlayer = new MediaPlayer();

myPlayer.setDataSource(outputFile);

myPlayer.prepare();

myPlayer.start();
myPlayer.release();



Ascolta.setEnabled(true);

Stop.setEnabled(false);





Toast.makeText(getApplicationContext(), "Ascolta.......",

Toast.LENGTH_SHORT).show();

} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

最佳答案

我解决了!
该代码需要实现。

public void start(View view){
try {
Media();// this creates a new object whenever you capture new voice.
media.prepare();
media.start();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Registra.setEnabled(false);
Stop.setEnabled(true);
Toast.makeText(getApplicationContext(), "Stai registrando Burlone !!!", Toast.LENGTH_LONG).show();

}
public void stop(View view){
media.stop();
media.release();
media = null;
Stop.setEnabled(false);
Registra.setEnabled(true);
Toast.makeText(getApplicationContext(), "Registrazione Terminata",
Toast.LENGTH_LONG).show();
}

关于android - 音频捕获Android无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30445278/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com