Простая запись Wave файлов.

SQLite, Preferences, файлы, SD, Content Provider, XML, JSON
Nachinka
Сообщения: 26
Зарегистрирован: 20 фев 2014, 23:07

Re: Простая запись Wave файлов.

Сообщение Nachinka » 24 мар 2014, 20:16

Как обычно написал еще раз и еще раз все не работает.....

Код: Выделить всё

03-24 17:12:37.701: D/TAG(853): minInternalBufferSize = 640, internalBufferSize = 2560, myBufferSize = 8192
03-24 17:12:41.482: D/TAG(853): record start
03-24 17:12:41.482: D/TAG(853): recording...
03-24 17:12:41.492: D/TAG(853): stop recorder
03-24 17:12:41.492: D/TAG(853): record stop!
03-24 17:12:41.512: D/TAG(853): readCount = 640, totalCount = 640
03-24 17:12:41.512: D/TAG(853): lenght: 8192
03-24 17:12:41.512: D/TAG(853): data1: 0
03-24 17:12:41.512: D/TAG(853): data2: 0
03-24 17:12:44.922: D/TAG(853): stop recorder
03-24 17:12:44.932: D/TAG(853): record stop!
Только нажимаю на кнопку старт, а тут хоп и стоп

Код: Выделить всё

03-24 17:12:41.482: D/TAG(853): record start
03-24 17:12:41.482: D/TAG(853): recording...
03-24 17:12:41.492: D/TAG(853): stop recorder
03-24 17:12:41.492: D/TAG(853): record stop!
Основной кодец

[syntax=java]package com.example.audiobyte;

import android.app.Activity;
import android.media.AudioFormat;
import android.media.AudioRecord;
import android.media.MediaRecorder;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity implements OnClickListener {

Button start_button;
Button stop_button;
TextView text;
boolean reading = false;
final String TAG = "TAG";
int myBufferSize = 8192;
AudioRecord audioRecord;
private Thread recordingThread = null;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start_button = (Button) findViewById(R.id.button1);
stop_button = (Button) findViewById(R.id.button2);
text = (TextView) findViewById(R.id.textView1);
start_button.setOnClickListener(this);
stop_button.setOnClickListener(this);
createAudioRecorder();
}

private void createAudioRecorder() {
int sampleRate = 16000;
int channelConfig = AudioFormat.CHANNEL_IN_MONO;
int audioFormat = AudioFormat.ENCODING_PCM_16BIT;

int minInternalBufferSize = AudioRecord.getMinBufferSize(sampleRate,
channelConfig, audioFormat);
int internalBufferSize = minInternalBufferSize * 4;
Log.d(TAG, "minInternalBufferSize = " + minInternalBufferSize
+ ", internalBufferSize = " + internalBufferSize
+ ", myBufferSize = " + myBufferSize);

audioRecord = new AudioRecord(MediaRecorder.AudioSource.MIC,
sampleRate, channelConfig, audioFormat, internalBufferSize);
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
Log.d(TAG, "record start");
reading = true;
startRecorder();
case R.id.button2:
Log.d(TAG, "stop recorder");
reading = false;
stopRecorder();
}
}

private void startRecorder() {
reading = true;
Log.d(TAG, "recording...");
audioRecord.startRecording();

recordingThread = new Thread(new Runnable() {

@Override
public void run() {
AudioData();
}
}, "AudioRecorder Thread");

recordingThread.start();
}

protected void AudioData() {
byte data[] = new byte[myBufferSize];
byte[] myBuffer = new byte[myBufferSize];
int readCount = 0;
int totalCount = 0;
while (reading) {
readCount = audioRecord.read(myBuffer, 0, myBufferSize);
data = myBuffer;
totalCount += readCount;
Log.d(TAG, "readCount = " + readCount + ", totalCount = "
+ totalCount);
Log.d(TAG, "lenght: " + data.length);
Log.d(TAG, "data1: " + data[0]);
Log.d(TAG, "data2: " + data[1]);
}
}

private void stopRecorder() {
reading = false;
Log.d(TAG, "record stop!");
// audioRecord.stop();
if (null != audioRecord) {
reading = false;
audioRecord.stop();
audioRecord.release();
audioRecord = null;
recordingThread = null;
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
[/syntax]

Ошибок приложение не выдает.

Ответить