Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: webrtc/voice_engine/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java

Issue 2065353002: Delete unused code. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Trivial rebase. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « webrtc/voice_engine/test/android/android_test/res/values/strings.xml ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webrtc/voice_engine/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java
diff --git a/webrtc/voice_engine/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java b/webrtc/voice_engine/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java
deleted file mode 100644
index 71b22b0d6d18b7e488b159087b8d34f764ac6c13..0000000000000000000000000000000000000000
--- a/webrtc/voice_engine/test/android/android_test/src/org/webrtc/voiceengine/test/AndroidTest.java
+++ /dev/null
@@ -1,1190 +0,0 @@
-/*
- * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
- *
- * Use of this source code is governed by a BSD-style license that can be found
- * in the LICENSE file in the root of the source tree. An additional
- * intellectual property rights grant can be found in the file PATENTS. All
- * contributing project authors may be found in the AUTHORS file in the root of
- * the source tree.
- */
-
-/*
- * VoiceEngine Android test application. It starts either auto test or acts like
- * a GUI test.
- */
-
-package org.webrtc.voiceengine.test;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.FileReader;
-import java.io.IOException;
-
-import android.app.Activity;
-import android.content.Context;
-import android.media.AudioFormat;
-import android.media.AudioManager;
-import android.media.AudioRecord;
-import android.media.AudioTrack;
-import android.media.MediaRecorder;
-import android.os.Bundle;
-import android.util.Log;
-import android.view.View;
-import android.widget.AdapterView;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.EditText;
-import android.widget.Spinner;
-import android.widget.TextView;
-
-public class AndroidTest extends Activity {
- private byte[] _playBuffer = null;
- private short[] _circBuffer = new short[8000]; // can hold 50 frames
-
- private int _recIndex = 0;
- private int _playIndex = 0;
- // private int _streamVolume = 4;
- private int _maxVolume = 0; // Android max level (commonly 5)
- // VoE level (0-255), corresponds to level 4 out of 5
- private int _volumeLevel = 204;
-
- private Thread _playThread;
- private Thread _recThread;
- private Thread _autotestThread;
-
- private static AudioTrack _at;
- private static AudioRecord _ar;
-
- private File _fr = null;
- private FileInputStream _in = null;
-
- private boolean _isRunningPlay = false;
- private boolean _isRunningRec = false;
- private boolean _settingSet = true;
- private boolean _isCallActive = false;
- private boolean _runAutotest = false; // ENABLE AUTOTEST HERE!
-
- private int _channel = -1;
- private int _codecIndex = 0;
- private int _ecIndex = 0;
- private int _nsIndex = 0;
- private int _agcIndex = 0;
- private int _vadIndex = 0;
- private int _audioIndex = 3;
- private int _settingMenu = 0;
- private int _receivePort = 1234;
- private int _destinationPort = 1234;
- private String _destinationIP = "127.0.0.1";
-
- // "Build" settings
- private final boolean _playFromFile = false;
- // Set to true to send data to native code and back
- private final boolean _runThroughNativeLayer = true;
- private final boolean enableSend = true;
- private final boolean enableReceive = true;
- private final boolean useNativeThread = false;
-
- /** Called when the activity is first created. */
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
-
- TextView tv = (TextView) findViewById(R.id.TextView01);
- tv.setText("");
-
- final EditText ed = (EditText) findViewById(R.id.EditText01);
- ed.setWidth(200);
- ed.setText(_destinationIP);
-
- final Button buttonStart = (Button) findViewById(R.id.Button01);
- buttonStart.setWidth(200);
- if (_runAutotest) {
- buttonStart.setText("Run test");
- } else {
- buttonStart.setText("Start Call");
- }
- // button.layout(50, 50, 100, 40);
- buttonStart.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
-
- if (_runAutotest) {
- startAutoTest();
- } else {
- if (_isCallActive) {
-
- if (stopCall() != -1) {
- _isCallActive = false;
- buttonStart.setText("Start Call");
- }
- } else {
-
- _destinationIP = ed.getText().toString();
- if (startCall() != -1) {
- _isCallActive = true;
- buttonStart.setText("Stop Call");
- }
- }
- }
-
- // displayTextFromFile();
- // recordAudioToFile();
- // if(!_playFromFile)
- // {
- // recAudioInThread();
- // }
- // playAudioInThread();
- }
- });
-
- final Button buttonStop = (Button) findViewById(R.id.Button02);
- buttonStop.setWidth(200);
- buttonStop.setText("Close app");
- buttonStop.setOnClickListener(new View.OnClickListener() {
- public void onClick(View v) {
-
- if (!_runAutotest) {
- ShutdownVoE();
- }
-
- // This call terminates and should close the activity
- finish();
-
- // playAudioFromFile();
- // if(!_playFromFile)
- // {
- // stopRecAudio();
- // }
- // stopPlayAudio();
- }
- });
-
-
- String ap1[] = {"EC off", "AECM"};
- final ArrayAdapter<String> adapterAp1 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- ap1);
- String ap2[] =
- {"NS off", "NS low", "NS moderate", "NS high",
- "NS very high"};
- final ArrayAdapter<String> adapterAp2 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- ap2);
- String ap3[] = {"AGC off", "AGC adaptive", "AGC fixed"};
- final ArrayAdapter<String> adapterAp3 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- ap3);
- String ap4[] =
- {"VAD off", "VAD conventional", "VAD high rate",
- "VAD mid rate", "VAD low rate"};
- final ArrayAdapter<String> adapterAp4 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- ap4);
- String codecs[] = {"iSAC", "PCMU", "PCMA", "iLBC"};
- final ArrayAdapter<String> adapterCodecs = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- codecs);
-
- final Spinner spinnerSettings1 = (Spinner) findViewById(R.id.Spinner01);
- final Spinner spinnerSettings2 = (Spinner) findViewById(R.id.Spinner02);
- spinnerSettings1.setMinimumWidth(200);
- String settings[] =
- {"Codec", "Echo Control", "Noise Suppression",
- "Automatic Gain Control",
- "Voice Activity Detection"};
- ArrayAdapter<String> adapterSettings1 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- settings);
- spinnerSettings1.setAdapter(adapterSettings1);
- spinnerSettings1.setOnItemSelectedListener(
- new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView adapterView, View view,
- int position, long id) {
-
- _settingMenu = position;
- _settingSet = false;
- if (position == 0) {
- spinnerSettings2.setAdapter(adapterCodecs);
- spinnerSettings2.setSelection(_codecIndex);
- }
- if (position == 1) {
- spinnerSettings2.setAdapter(adapterAp1);
- spinnerSettings2.setSelection(_ecIndex);
- }
- if (position == 2) {
- spinnerSettings2.setAdapter(adapterAp2);
- spinnerSettings2.setSelection(_nsIndex);
- }
- if (position == 3) {
- spinnerSettings2.setAdapter(adapterAp3);
- spinnerSettings2.setSelection(_agcIndex);
- }
- if (position == 4) {
- spinnerSettings2.setAdapter(adapterAp4);
- spinnerSettings2.setSelection(_vadIndex);
- }
- }
-
- public void onNothingSelected(AdapterView adapterView) {
- WebrtcLog("No setting1 selected");
- }
- });
-
- spinnerSettings2.setMinimumWidth(200);
- ArrayAdapter<String> adapterSettings2 = new ArrayAdapter<String>(
- this,
- android.R.layout.simple_spinner_dropdown_item,
- codecs);
- spinnerSettings2.setAdapter(adapterSettings2);
- spinnerSettings2.setOnItemSelectedListener(
- new AdapterView.OnItemSelectedListener() {
- public void onItemSelected(AdapterView adapterView, View view,
- int position, long id) {
-
- // avoid unintentional setting
- if (_settingSet == false) {
- _settingSet = true;
- return;
- }
-
- // Change volume
- if (_settingMenu == 0) {
- WebrtcLog("Selected audio " + position);
- setAudioProperties(position);
- spinnerSettings2.setSelection(_audioIndex);
- }
-
- // Change codec
- if (_settingMenu == 1) {
- _codecIndex = position;
- WebrtcLog("Selected codec " + position);
- if (0 != SetSendCodec(_channel, _codecIndex)) {
- WebrtcLog("VoE set send codec failed");
- }
- }
-
- // Change EC
- if (_settingMenu == 2) {
- boolean enable = true;
- int ECmode = 5; // AECM
- int AESmode = 0;
-
- _ecIndex = position;
- WebrtcLog("Selected EC " + position);
-
- if (position == 0) {
- enable = false;
- }
- if (position > 1) {
- ECmode = 4; // AES
- AESmode = position - 1;
- }
-
- if (0 != SetECStatus(enable, ECmode)) {
- WebrtcLog("VoE set EC status failed");
- }
- }
-
- // Change NS
- if (_settingMenu == 3) {
- boolean enable = true;
-
- _nsIndex = position;
- WebrtcLog("Selected NS " + position);
-
- if (position == 0) {
- enable = false;
- }
- if (0 != SetNSStatus(enable, position + 2)) {
- WebrtcLog("VoE set NS status failed");
- }
- }
-
- // Change AGC
- if (_settingMenu == 4) {
- boolean enable = true;
-
- _agcIndex = position;
- WebrtcLog("Selected AGC " + position);
-
- if (position == 0) {
- enable = false;
- position = 1; // default
- }
- if (0 != SetAGCStatus(enable, position + 2)) {
- WebrtcLog("VoE set AGC status failed");
- }
- }
-
- // Change VAD
- if (_settingMenu == 5) {
- boolean enable = true;
-
- _vadIndex = position;
- WebrtcLog("Selected VAD " + position);
-
- if (position == 0) {
- enable = false;
- position++;
- }
- if (0 != SetVADStatus(_channel, enable, position - 1)) {
- WebrtcLog("VoE set VAD status failed");
- }
- }
- }
-
- public void onNothingSelected(AdapterView adapterView) {
- }
- });
-
- // Setup VoiceEngine
- if (!_runAutotest && !useNativeThread) SetupVoE();
-
- // Suggest to use the voice call audio stream for hardware volume
- // controls
- setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
-
- // Get max Android volume and adjust default volume to map exactly to an
- // Android level
- AudioManager am =
- (AudioManager) getSystemService(Context.AUDIO_SERVICE);
- _maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_VOICE_CALL);
- if (_maxVolume <= 0) {
- WebrtcLog("Could not get max volume!");
- } else {
- int androidVolumeLevel = (_volumeLevel * _maxVolume) / 255;
- _volumeLevel = (androidVolumeLevel * 255) / _maxVolume;
- }
-
- WebrtcLog("Started Webrtc Android Test");
- }
-
- // Will be called when activity is shutdown.
- // NOTE: Activity may be killed without this function being called,
- // but then we should not need to clean up.
- protected void onDestroy() {
- super.onDestroy();
- // ShutdownVoE();
- }
-
- private void SetupVoE() {
- // Create VoiceEngine
- Create(); // Error logging is done in native API wrapper
-
- // Initialize
- if (0 != Init(false, false)) {
- WebrtcLog("VoE init failed");
- }
-
- // Create channel
- _channel = CreateChannel();
- if (0 != _channel) {
- WebrtcLog("VoE create channel failed");
- }
-
- }
-
- private void ShutdownVoE() {
- // Delete channel
- if (0 != DeleteChannel(_channel)) {
- WebrtcLog("VoE delete channel failed");
- }
-
- // Terminate
- if (0 != Terminate()) {
- WebrtcLog("VoE terminate failed");
- }
-
- // Delete VoiceEngine
- Delete(); // Error logging is done in native API wrapper
- }
-
- int startCall() {
-
- if (useNativeThread == true) {
-
- Create();
- return 0;
- }
-
- if (enableReceive == true) {
- // Set local receiver
- if (0 != SetLocalReceiver(_channel, _receivePort)) {
- WebrtcLog("VoE set local receiver failed");
- }
-
- if (0 != StartListen(_channel)) {
- WebrtcLog("VoE start listen failed");
- return -1;
- }
-
- // Route audio to earpiece
- if (0 != SetLoudspeakerStatus(false)) {
- WebrtcLog("VoE set louspeaker status failed");
- return -1;
- }
-
- /*
- * WebrtcLog("VoE start record now"); if (0 !=
- * StartRecordingPlayout(_channel, "/sdcard/singleUserDemoOut.pcm",
- * false)) { WebrtcLog("VoE Recording Playout failed"); }
- * WebrtcLog("VoE start Recording Playout end");
- */
- // Start playout
- if (0 != StartPlayout(_channel)) {
- WebrtcLog("VoE start playout failed");
- return -1;
- }
-
- // Start playout file
- // if (0 != StartPlayingFileLocally(_channel,
- // "/sdcard/singleUserDemo.pcm", true)) {
- // WebrtcLog("VoE start playout file failed");
- // return -1;
- // }
- }
-
- if (enableSend == true) {
- if (0 != SetSendDestination(_channel, _destinationPort,
- _destinationIP)) {
- WebrtcLog("VoE set send destination failed");
- return -1;
- }
-
- if (0 != SetSendCodec(_channel, _codecIndex)) {
- WebrtcLog("VoE set send codec failed");
- return -1;
- }
-
- /*
- * if (0 != StartPlayingFileAsMicrophone(_channel,
- * "/sdcard/singleUserDemo.pcm", true)) {
- * WebrtcLog("VoE start playing file as microphone failed"); }
- */
- if (0 != StartSend(_channel)) {
- WebrtcLog("VoE start send failed");
- return -1;
- }
-
- // if (0 != StartPlayingFileAsMicrophone(_channel,
- // "/sdcard/singleUserDemo.pcm", true)) {
- // WebrtcLog("VoE start playing file as microphone failed");
- // return -1;
- // }
- }
-
- return 0;
- }
-
- int stopCall() {
-
- if (useNativeThread == true) {
-
- Delete();
- return 0;
- }
-
- if (enableSend == true) {
- // Stop playing file as microphone
- /*
- * if (0 != StopPlayingFileAsMicrophone(_channel)) {
- * WebrtcLog("VoE stop playing file as microphone failed"); return
- * -1; }
- */
- // Stop send
- if (0 != StopSend(_channel)) {
- WebrtcLog("VoE stop send failed");
- return -1;
- }
- }
-
- if (enableReceive == true) {
- // if (0 != StopRecordingPlayout(_channel)) {
- // WebrtcLog("VoE stop Recording Playout failed");
- // }
- // WebrtcLog("VoE stop Recording Playout ended");
-
- // Stop listen
- if (0 != StopListen(_channel)) {
- WebrtcLog("VoE stop listen failed");
- return -1;
- }
-
- // Stop playout file
- // if (0 != StopPlayingFileLocally(_channel)) {
- // WebrtcLog("VoE stop playout file failed");
- // return -1;
- // }
-
- // Stop playout
- if (0 != StopPlayout(_channel)) {
- WebrtcLog("VoE stop playout failed");
- return -1;
- }
-
- // Route audio to loudspeaker
- if (0 != SetLoudspeakerStatus(true)) {
- WebrtcLog("VoE set louspeaker status failed");
- return -1;
- }
- }
-
- return 0;
- }
-
- int startAutoTest() {
-
- _autotestThread = new Thread(_autotestProc);
- _autotestThread.start();
-
- return 0;
- }
-
- private Runnable _autotestProc = new Runnable() {
- public void run() {
- // TODO(xians): choose test from GUI
- // 1 = standard, not used
- // 2 = extended, 2 = base
- RunAutoTest(1, 2);
- }
- };
-
- int setAudioProperties(int val) {
-
- // AudioManager am = (AudioManager)
- // getSystemService(Context.AUDIO_SERVICE);
-
- if (val == 0) {
- // _streamVolume =
- // am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
- // am.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
- // (_streamVolume+1), 0);
-
- int androidVolumeLevel = (_volumeLevel * _maxVolume) / 255;
- if (androidVolumeLevel < _maxVolume) {
- _volumeLevel = ((androidVolumeLevel + 1) * 255) / _maxVolume;
- if (0 != SetSpeakerVolume(_volumeLevel)) {
- WebrtcLog("VoE set speaker volume failed");
- }
- }
- } else if (val == 1) {
- // _streamVolume =
- // am.getStreamVolume(AudioManager.STREAM_VOICE_CALL);
- // am.setStreamVolume(AudioManager.STREAM_VOICE_CALL,
- // (_streamVolume-1), 0);
-
- int androidVolumeLevel = (_volumeLevel * _maxVolume) / 255;
- if (androidVolumeLevel > 0) {
- _volumeLevel = ((androidVolumeLevel - 1) * 255) / _maxVolume;
- if (0 != SetSpeakerVolume(_volumeLevel)) {
- WebrtcLog("VoE set speaker volume failed");
- }
- }
- } else if (val == 2) {
- // route audio to back speaker
- if (0 != SetLoudspeakerStatus(true)) {
- WebrtcLog("VoE set loudspeaker status failed");
- }
- _audioIndex = 2;
- } else if (val == 3) {
- // route audio to earpiece
- if (0 != SetLoudspeakerStatus(false)) {
- WebrtcLog("VoE set loudspeaker status failed");
- }
- _audioIndex = 3;
- }
-
- return 0;
- }
-
- int displayTextFromFile() {
-
- TextView tv = (TextView) findViewById(R.id.TextView01);
- FileReader fr = null;
- char[] fileBuffer = new char[64];
-
- try {
- fr = new FileReader("/sdcard/test.txt");
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- tv.setText("File not found!");
- }
-
- try {
- fr.read(fileBuffer);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- String readString = new String(fileBuffer);
- tv.setText(readString);
- // setContentView(tv);
-
- return 0;
- }
-
- int recordAudioToFile() {
- File fr = null;
- // final to be reachable within onPeriodicNotification
- byte[] recBuffer = new byte[320];
-
- int recBufSize =
- AudioRecord.getMinBufferSize(16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT);
- AudioRecord rec =
- new AudioRecord(MediaRecorder.AudioSource.MIC, 16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT,
- recBufSize);
-
- fr = new File("/sdcard/record.pcm");
- FileOutputStream out = null;
- try {
- out = new FileOutputStream(fr);
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
-
- // start recording
- try {
- rec.startRecording();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- for (int i = 0; i < 550; i++) {
- // note, there is a short version of write as well!
- int wrBytes = rec.read(recBuffer, 0, 320);
-
- try {
- out.write(recBuffer);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
- // stop playout
- try {
- rec.stop();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- return 0;
- }
-
- int playAudioFromFile() {
-
- File fr = null;
- // final to be reachable within onPeriodicNotification
- // final byte[] playBuffer = new byte [320000];
- // final to be reachable within onPeriodicNotification
- final byte[] playBuffer = new byte[320];
-
- final int playBufSize =
- AudioTrack.getMinBufferSize(16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT);
- // final int playBufSize = 1920; // 100 ms buffer
- // byte[] playBuffer = new byte [playBufSize];
- final AudioTrack play =
- new AudioTrack(AudioManager.STREAM_VOICE_CALL, 16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT,
- playBufSize, AudioTrack.MODE_STREAM);
-
- // implementation of the playpos callback functions
- play.setPlaybackPositionUpdateListener(
- new AudioTrack.OnPlaybackPositionUpdateListener() {
-
- int count = 0;
-
- public void onPeriodicNotification(AudioTrack track) {
- // int wrBytes = play.write(playBuffer, count, 320);
- count += 320;
- }
-
- public void onMarkerReached(AudioTrack track) {
-
- }
- });
-
- // set the notification period = 160 samples
- // int ret = play.setPositionNotificationPeriod(160);
-
- fr = new File("/sdcard/record.pcm");
- FileInputStream in = null;
- try {
- in = new FileInputStream(fr);
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
-
- // try {
- // in.read(playBuffer);
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
-
- // play all at once
- // int wrBytes = play.write(playBuffer, 0, 320000);
-
-
- // start playout
- try {
- play.play();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- // returns the number of samples that has been written
- // int headPos = play.getPlaybackHeadPosition();
-
- // play with multiple writes
- for (int i = 0; i < 500; i++) {
- try {
- in.read(playBuffer);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
-
- // note, there is a short version of write as well!
- int wrBytes = play.write(playBuffer, 0, 320);
-
- Log.d("testWrite", "wrote");
- }
-
- // stop playout
- try {
- play.stop();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- return 0;
- }
-
- int playAudioInThread() {
-
- if (_isRunningPlay) {
- return 0;
- }
-
- // File fr = null;
- // final byte[] playBuffer = new byte[320];
- if (_playFromFile) {
- _playBuffer = new byte[320];
- } else {
- // reset index
- _playIndex = 0;
- }
- // within
- // onPeriodicNotification
-
- // Log some info (static)
- WebrtcLog("Creating AudioTrack object");
- final int minPlayBufSize =
- AudioTrack.getMinBufferSize(16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT);
- WebrtcLog("Min play buf size = " + minPlayBufSize);
- WebrtcLog("Min volume = " + AudioTrack.getMinVolume());
- WebrtcLog("Max volume = " + AudioTrack.getMaxVolume());
- WebrtcLog("Native sample rate = "
- + AudioTrack.getNativeOutputSampleRate(
- AudioManager.STREAM_VOICE_CALL));
-
- final int playBufSize = minPlayBufSize; // 3200; // 100 ms buffer
- // byte[] playBuffer = new byte [playBufSize];
- try {
- _at = new AudioTrack(
- AudioManager.STREAM_VOICE_CALL,
- 16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT,
- playBufSize, AudioTrack.MODE_STREAM);
- } catch (Exception e) {
- WebrtcLog(e.getMessage());
- }
-
- // Log some info (non-static)
- WebrtcLog("Notification marker pos = "
- + _at.getNotificationMarkerPosition());
- WebrtcLog("Play head pos = " + _at.getPlaybackHeadPosition());
- WebrtcLog("Pos notification dt = "
- + _at.getPositionNotificationPeriod());
- WebrtcLog("Playback rate = " + _at.getPlaybackRate());
- WebrtcLog("Sample rate = " + _at.getSampleRate());
-
- // implementation of the playpos callback functions
- // _at.setPlaybackPositionUpdateListener(
- // new AudioTrack.OnPlaybackPositionUpdateListener() {
- //
- // int count = 3200;
- //
- // public void onPeriodicNotification(AudioTrack track) {
- // // int wrBytes = play.write(playBuffer, count, 320);
- // count += 320;
- // }
- //
- // public void onMarkerReached(AudioTrack track) {
- // }
- // });
-
- // set the notification period = 160 samples
- // int ret = _at.setPositionNotificationPeriod(160);
-
- if (_playFromFile) {
- _fr = new File("/sdcard/singleUserDemo.pcm");
- try {
- _in = new FileInputStream(_fr);
- } catch (FileNotFoundException e1) {
- e1.printStackTrace();
- }
- }
-
- // try {
- // in.read(playBuffer);
- // } catch (IOException e) {
- // e.printStackTrace();
- // }
-
- _isRunningPlay = true;
-
- // buffer = new byte[3200];
- _playThread = new Thread(_playProc);
- // ar.startRecording();
- // bytesRead = 3200;
- // recording = true;
- _playThread.start();
-
- return 0;
- }
-
- int stopPlayAudio() {
- if (!_isRunningPlay) {
- return 0;
- }
-
- _isRunningPlay = false;
-
- return 0;
- }
-
- private Runnable _playProc = new Runnable() {
- public void run() {
-
- // set high thread priority
- android.os.Process.setThreadPriority(
- android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
-
- // play all at once
- // int wrBytes = play.write(playBuffer, 0, 320000);
-
- // fill the buffer
- // play.write(playBuffer, 0, 3200);
-
- // play.flush();
-
- // start playout
- try {
- _at.play();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- // play with multiple writes
- int i = 0;
- for (; i < 3000 && _isRunningPlay; i++) {
-
- if (_playFromFile) {
- try {
- _in.read(_playBuffer);
- } catch (IOException e) {
- e.printStackTrace();
- }
-
- int wrBytes = _at.write(_playBuffer, 0 /* i * 320 */, 320);
- } else {
- int wrSamples =
- _at.write(_circBuffer, _playIndex * 160,
- 160);
-
- // WebrtcLog("Played 10 ms from buffer, _playIndex = " +
- // _playIndex);
- // WebrtcLog("Diff = " + (_recIndex - _playIndex));
-
- if (_playIndex == 49) {
- _playIndex = 0;
- } else {
- _playIndex += 1;
- }
- }
-
- // WebrtcLog("Wrote 10 ms to buffer, head = "
- // + _at.getPlaybackHeadPosition());
- }
-
- // stop playout
- try {
- _at.stop();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- // returns the number of samples that has been written
- WebrtcLog("Test stopped, i = " + i + ", head = "
- + _at.getPlaybackHeadPosition());
- int headPos = _at.getPlaybackHeadPosition();
-
- // flush the buffers
- _at.flush();
-
- // release the object
- _at.release();
- _at = null;
-
- // try {
- // Thread.sleep() must be within a try - catch block
- // Thread.sleep(3000);
- // }catch (Exception e){
- // System.out.println(e.getMessage());
- // }
-
- _isRunningPlay = false;
-
- }
- };
-
- int recAudioInThread() {
-
- if (_isRunningRec) {
- return 0;
- }
-
- // within
- // onPeriodicNotification
-
- // reset index
- _recIndex = 20;
-
- // Log some info (static)
- WebrtcLog("Creating AudioRecord object");
- final int minRecBufSize = AudioRecord.getMinBufferSize(16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT);
- WebrtcLog("Min rec buf size = " + minRecBufSize);
- // WebrtcLog("Min volume = " + AudioTrack.getMinVolume());
- // WebrtcLog("Max volume = " + AudioTrack.getMaxVolume());
- // WebrtcLog("Native sample rate = "
- // + AudioRecord
- // .getNativeInputSampleRate(AudioManager.STREAM_VOICE_CALL));
-
- final int recBufSize = minRecBufSize; // 3200; // 100 ms buffer
- try {
- _ar = new AudioRecord(
- MediaRecorder.AudioSource.MIC,
- 16000,
- AudioFormat.CHANNEL_CONFIGURATION_MONO,
- AudioFormat.ENCODING_PCM_16BIT,
- recBufSize);
- } catch (Exception e) {
- WebrtcLog(e.getMessage());
- }
-
- // Log some info (non-static)
- WebrtcLog("Notification marker pos = "
- + _ar.getNotificationMarkerPosition());
- // WebrtcLog("Play head pos = " + _ar.getRecordHeadPosition());
- WebrtcLog("Pos notification dt rec= "
- + _ar.getPositionNotificationPeriod());
- // WebrtcLog("Playback rate = " + _ar.getRecordRate());
- // WebrtcLog("Playback rate = " + _ar.getPlaybackRate());
- WebrtcLog("Sample rate = " + _ar.getSampleRate());
- // WebrtcLog("Playback rate = " + _ar.getPlaybackRate());
- // WebrtcLog("Playback rate = " + _ar.getPlaybackRate());
-
- _isRunningRec = true;
-
- _recThread = new Thread(_recProc);
-
- _recThread.start();
-
- return 0;
- }
-
- int stopRecAudio() {
- if (!_isRunningRec) {
- return 0;
- }
-
- _isRunningRec = false;
-
- return 0;
- }
-
- private Runnable _recProc = new Runnable() {
- public void run() {
-
- // set high thread priority
- android.os.Process.setThreadPriority(
- android.os.Process.THREAD_PRIORITY_URGENT_AUDIO);
-
- // start recording
- try {
- _ar.startRecording();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- // keep recording to circular buffer
- // for a while
- int i = 0;
- int rdSamples = 0;
- short[] tempBuffer = new short[160]; // Only used for native case
-
- for (; i < 3000 && _isRunningRec; i++) {
- if (_runThroughNativeLayer) {
- rdSamples = _ar.read(tempBuffer, 0, 160);
- // audioLoop(tempBuffer, 160); // Insert into native layer
- } else {
- rdSamples = _ar.read(_circBuffer, _recIndex * 160, 160);
-
- // WebrtcLog("Recorded 10 ms to buffer, _recIndex = " +
- // _recIndex);
- // WebrtcLog("rdSamples = " + rdSamples);
-
- if (_recIndex == 49) {
- _recIndex = 0;
- } else {
- _recIndex += 1;
- }
- }
- }
-
- // stop recording
- try {
- _ar.stop();
- } catch (IllegalStateException e) {
- e.printStackTrace();
- }
-
- // release the object
- _ar.release();
- _ar = null;
-
- // try {
- // Thread.sleep() must be within a try - catch block
- // Thread.sleep(3000);
- // }catch (Exception e){
- // System.out.println(e.getMessage());
- // }
-
- _isRunningRec = false;
-
- // returns the number of samples that has been written
- // WebrtcLog("Test stopped, i = " + i + ", head = "
- // + _at.getPlaybackHeadPosition());
- // int headPos = _at.getPlaybackHeadPosition();
- }
- };
-
- private void WebrtcLog(String msg) {
- Log.d("*Webrtc*", msg);
- }
-
- // //////////////// Native function prototypes ////////////////////
-
- private native static boolean NativeInit();
-
- private native int RunAutoTest(int testType, int extendedSel);
-
- private native boolean Create();
-
- private native boolean Delete();
-
- private native int Init(boolean enableTrace, boolean useExtTrans);
-
- private native int Terminate();
-
- private native int CreateChannel();
-
- private native int DeleteChannel(int channel);
-
- private native int SetLocalReceiver(int channel, int port);
-
- private native int SetSendDestination(int channel, int port,
- String ipaddr);
-
- private native int StartListen(int channel);
-
- private native int StartPlayout(int channel);
-
- private native int StartSend(int channel);
-
- private native int StopListen(int channel);
-
- private native int StopPlayout(int channel);
-
- private native int StopSend(int channel);
-
- private native int StartPlayingFileLocally(int channel, String fileName,
- boolean loop);
-
- private native int StopPlayingFileLocally(int channel);
-
- private native int StartRecordingPlayout(int channel, String fileName,
- boolean loop);
-
- private native int StopRecordingPlayout(int channel);
-
- private native int StartPlayingFileAsMicrophone(int channel,
- String fileName, boolean loop);
-
- private native int StopPlayingFileAsMicrophone(int channel);
-
- private native int NumOfCodecs();
-
- private native int SetSendCodec(int channel, int index);
-
- private native int SetVADStatus(int channel, boolean enable, int mode);
-
- private native int SetNSStatus(boolean enable, int mode);
-
- private native int SetAGCStatus(boolean enable, int mode);
-
- private native int SetECStatus(boolean enable, int mode);
-
- private native int SetSpeakerVolume(int volume);
-
- private native int SetLoudspeakerStatus(boolean enable);
-
- /*
- * this is used to load the 'webrtc-voice-demo-jni'
- * library on application startup.
- * The library has already been unpacked into
- * /data/data/webrtc.android.AndroidTest/lib/libwebrtc-voice-demo-jni.so
- * at installation time by the package manager.
- */
- static {
- Log.d("*Webrtc*", "Loading webrtc-voice-demo-jni...");
- System.loadLibrary("webrtc-voice-demo-jni");
-
- Log.d("*Webrtc*", "Calling native init...");
- if (!NativeInit()) {
- Log.e("*Webrtc*", "Native init failed");
- throw new RuntimeException("Native init failed");
- } else {
- Log.d("*Webrtc*", "Native init successful");
- }
- }
-}
« no previous file with comments | « webrtc/voice_engine/test/android/android_test/res/values/strings.xml ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698