use of org.robolectric.shadows.ShadowAudioRecord.AudioRecordSource in project robolectric by robolectric.
the class ShadowAudioRecordTest method nativeReadByteCallsAudioRecordSourceWhenSet.
@Test
public void nativeReadByteCallsAudioRecordSourceWhenSet() {
AudioRecordSource source = Mockito.mock(AudioRecordSource.class);
ShadowAudioRecord.setSource(source);
AudioRecord audioRecord = createAudioRecord();
audioRecord.startRecording();
audioRecord.read(new byte[100], 0, 100);
verify(source).readInByteArray(any(byte[].class), eq(0), eq(100), /* isBlocking=*/
eq(true));
verifyNoMoreInteractions(source);
}
use of org.robolectric.shadows.ShadowAudioRecord.AudioRecordSource in project robolectric by robolectric.
the class ShadowAudioRecordTest method nativeReadShortCallsAudioRecordSourceWhenSetNonBlockingMOnwards.
@Test
@Config(minSdk = M)
public void nativeReadShortCallsAudioRecordSourceWhenSetNonBlockingMOnwards() {
AudioRecordSource source = Mockito.mock(AudioRecordSource.class);
ShadowAudioRecord.setSource(source);
AudioRecord audioRecord = createAudioRecord();
audioRecord.startRecording();
audioRecord.read(new short[100], 0, 100, AudioRecord.READ_NON_BLOCKING);
verify(source).readInShortArray(any(short[].class), eq(0), eq(100), /* isBlocking=*/
eq(false));
verifyNoMoreInteractions(source);
}
use of org.robolectric.shadows.ShadowAudioRecord.AudioRecordSource in project robolectric by robolectric.
the class ShadowAudioRecordTest method nativeReadFloatCallsAudioRecordSourceWhenSetBlocking.
@Test
@Config(minSdk = M)
public void nativeReadFloatCallsAudioRecordSourceWhenSetBlocking() {
AudioRecordSource source = Mockito.mock(AudioRecordSource.class);
ShadowAudioRecord.setSource(source);
AudioRecord audioRecord = new AudioRecord(AudioSource.MIC, 16000, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_FLOAT, 1024);
audioRecord.startRecording();
audioRecord.read(new float[100], 0, 100, AudioRecord.READ_BLOCKING);
verify(source).readInFloatArray(any(float[].class), eq(0), eq(100), /* isBlocking=*/
eq(true));
verifyNoMoreInteractions(source);
}
use of org.robolectric.shadows.ShadowAudioRecord.AudioRecordSource in project robolectric by robolectric.
the class ShadowAudioRecordTest method setSourceProvider.
@Test
public void setSourceProvider() {
byte[] firstAudioRecordInput = new byte[] { 1, 2, 3 };
AudioRecordSource firstAudioRecordSource = createAudioRecordSource(firstAudioRecordInput);
AudioRecord firstAudioRecord = createAudioRecord();
byte[] secondAudioRecordInput = new byte[] { 4, 5, 6, 7, 8 };
AudioRecordSource subsequentAudioRecordSource = createAudioRecordSource(secondAudioRecordInput);
AudioRecord secondAudioRecord = createAudioRecord();
ShadowAudioRecord.setSourceProvider(audioRecord -> {
if (audioRecord == firstAudioRecord) {
return firstAudioRecordSource;
}
return subsequentAudioRecordSource;
});
firstAudioRecord.startRecording();
byte[] firstAudioRecordData = new byte[100];
int firstAudioRecordBytesRead = firstAudioRecord.read(firstAudioRecordData, 0, 100);
firstAudioRecord.stop();
firstAudioRecord.release();
// Read from second AudioRecord.
secondAudioRecord.startRecording();
byte[] secondAudioRecordData = new byte[100];
int secondAudioRecordBytesRead = secondAudioRecord.read(secondAudioRecordData, 0, 100);
secondAudioRecord.stop();
secondAudioRecord.release();
assertThat(firstAudioRecordBytesRead).isEqualTo(firstAudioRecordInput.length);
assertThat(Arrays.copyOf(firstAudioRecordData, firstAudioRecordInput.length)).isEqualTo(firstAudioRecordInput);
assertThat(secondAudioRecordBytesRead).isEqualTo(secondAudioRecordInput.length);
assertThat(Arrays.copyOf(secondAudioRecordData, secondAudioRecordInput.length)).isEqualTo(secondAudioRecordInput);
}
use of org.robolectric.shadows.ShadowAudioRecord.AudioRecordSource in project robolectric by robolectric.
the class ShadowAudioRecordTest method nativeReadByteBufferCallsAudioRecordSourceWhenSetNonBlockingMOnwards.
@Test
@Config(minSdk = M)
public void nativeReadByteBufferCallsAudioRecordSourceWhenSetNonBlockingMOnwards() {
AudioRecordSource source = Mockito.mock(AudioRecordSource.class);
ShadowAudioRecord.setSource(source);
AudioRecord audioRecord = createAudioRecord();
audioRecord.startRecording();
audioRecord.read(ByteBuffer.allocate(100), 100, AudioRecord.READ_NON_BLOCKING);
verify(source).readInDirectBuffer(any(ByteBuffer.class), eq(100), /* isBlocking=*/
eq(false));
verifyNoMoreInteractions(source);
}
Aggregations