Skip to content

Commit 362c959

Browse files
committed
Speech recognition audio_type support
1 parent b99cc8f commit 362c959

7 files changed

Lines changed: 68 additions & 1 deletion

File tree

camerakit/src/main/api16/com/flurgle/camerakit/Camera1.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import java.util.Set;
2323
import java.util.TreeSet;
2424

25+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_DEFAULT;
26+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_MUTED;
27+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_VOICE_RECOGNITION_COMPATIBLE;
2528
import static com.flurgle.camerakit.CameraKit.Constants.FLASH_OFF;
2629
import static com.flurgle.camerakit.CameraKit.Constants.FOCUS_CONTINUOUS;
2730
import static com.flurgle.camerakit.CameraKit.Constants.FOCUS_OFF;
@@ -70,6 +73,9 @@ public class Camera1 extends CameraImpl {
7073
@VideoQuality
7174
private int mVideoQuality;
7275

76+
@Audio
77+
private int mAudio;
78+
7379
private Handler mHandler = new Handler();
7480

7581
Camera1(CameraListener callback, PreviewImpl preview) {
@@ -211,6 +217,11 @@ void setVideoQuality(int videoQuality) {
211217
this.mVideoQuality = videoQuality;
212218
}
213219

220+
@Override
221+
void setAudio(@Audio final int audio) {
222+
this.mAudio = audio;
223+
}
224+
214225
@Override
215226
void captureImage() {
216227
switch (mMethod) {
@@ -477,7 +488,16 @@ private void initMediaRecorder() {
477488
mMediaRecorder.setCamera(mCamera);
478489

479490
mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
480-
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
491+
492+
switch (mAudio) {
493+
case AUDIO_DEFAULT:
494+
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
495+
case AUDIO_VOICE_RECOGNITION_COMPATIBLE:
496+
mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.VOICE_RECOGNITION);
497+
case AUDIO_MUTED:
498+
//For muted audio setAudioSource isn't called
499+
break;
500+
}
481501

482502
mMediaRecorder.setProfile(getCamcorderProfile(mVideoQuality));
483503

camerakit/src/main/api21/com/flurgle/camerakit/Camera2.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,11 @@ void setVideoQuality(int videoQuality) {
160160

161161
}
162162

163+
@Override
164+
void setAudio(@Audio final int audio) {
165+
//TODO
166+
}
167+
163168
@Override
164169
void captureImage() {
165170

camerakit/src/main/base/com/flurgle/camerakit/CameraImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ abstract class CameraImpl {
2323
abstract void setMethod(@Method int method);
2424
abstract void setZoom(@Zoom int zoom);
2525
abstract void setVideoQuality(@VideoQuality int videoQuality);
26+
abstract void setAudio(@Audio int audio);
2627

2728
abstract void captureImage();
2829
abstract void startVideo();

camerakit/src/main/java/com/flurgle/camerakit/CameraKit.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@ public static class Constants {
4747
public static final int VIDEO_QUALITY_LOWEST = 5;
4848
public static final int VIDEO_QUALITY_QVGA = 6;
4949

50+
public static final int AUDIO_DEFAULT = 0;
51+
public static final int AUDIO_VOICE_RECOGNITION_COMPATIBLE = 1;
52+
public static final int AUDIO_MUTED = 2;
53+
5054
}
5155

5256
static class Defaults {
@@ -58,6 +62,7 @@ static class Defaults {
5862
static final int DEFAULT_METHOD = Constants.METHOD_STANDARD;
5963
static final int DEFAULT_PERMISSIONS = Constants.PERMISSIONS_STRICT;
6064
static final int DEFAULT_VIDEO_QUALITY = Constants.VIDEO_QUALITY_480P;
65+
static final int DEFAULT_AUDIO = Constants.AUDIO_DEFAULT;
6166

6267
static final int DEFAULT_JPEG_QUALITY = 100;
6368
static final boolean DEFAULT_CROP_OUTPUT = false;

camerakit/src/main/java/com/flurgle/camerakit/CameraView.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,10 @@ public class CameraView extends FrameLayout implements LifecycleObserver {
8989

9090
@VideoQuality
9191
private int mVideoQuality;
92+
93+
@Audio
94+
private int mAudio;
95+
9296
private int mJpegQuality;
9397
private boolean mCropOutput;
9498

@@ -130,6 +134,7 @@ private void init(@NonNull Context context, @Nullable AttributeSet attrs) {
130134
mZoom = a.getInteger(R.styleable.CameraView_ckZoom, CameraKit.Defaults.DEFAULT_ZOOM);
131135
mPermissions = a.getInteger(R.styleable.CameraView_ckPermissions, CameraKit.Defaults.DEFAULT_PERMISSIONS);
132136
mVideoQuality = a.getInteger(R.styleable.CameraView_ckVideoQuality, CameraKit.Defaults.DEFAULT_VIDEO_QUALITY);
137+
mAudio = a.getInteger(R.styleable.CameraView_ckAudio, CameraKit.Defaults.DEFAULT_AUDIO);
133138
mJpegQuality = a.getInteger(R.styleable.CameraView_ckJpegQuality, CameraKit.Defaults.DEFAULT_JPEG_QUALITY);
134139
mCropOutput = a.getBoolean(R.styleable.CameraView_ckCropOutput, CameraKit.Defaults.DEFAULT_CROP_OUTPUT);
135140
mAdjustViewBounds = a.getBoolean(R.styleable.CameraView_android_adjustViewBounds, CameraKit.Defaults.DEFAULT_ADJUST_VIEW_BOUNDS);
@@ -151,6 +156,7 @@ private void init(@NonNull Context context, @Nullable AttributeSet attrs) {
151156
setZoom(mZoom);
152157
setPermissions(mPermissions);
153158
setVideoQuality(mVideoQuality);
159+
setAudio(mAudio);
154160

155161
if (!isInEditMode()) {
156162
mDisplayOrientationDetector = new DisplayOrientationDetector(context) {
@@ -372,6 +378,11 @@ public void setVideoQuality(@VideoQuality int videoQuality) {
372378
mCameraImpl.setVideoQuality(mVideoQuality);
373379
}
374380

381+
public void setAudio(@Audio int audio) {
382+
this.mAudio = audio;
383+
mCameraImpl.setAudio(mAudio);
384+
}
385+
375386
public void setJpegQuality(int jpegQuality) {
376387
this.mJpegQuality = jpegQuality;
377388
}

camerakit/src/main/res/values/attrs.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,12 @@
5656
<enum name="qvga" value="6" />
5757
</attr>
5858

59+
<attr name="ckAudio" format="enum">
60+
<enum name="default_source" value="0" />
61+
<enum name="speech_recognition" value="1" />
62+
<enum name="muted" value="2" />
63+
</attr>
64+
5965
<attr name="ckCropOutput" format="boolean" />
6066

6167
<attr name="android:adjustViewBounds" />
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.flurgle.camerakit;
2+
import android.support.annotation.IntDef;
3+
4+
import java.lang.annotation.Retention;
5+
import java.lang.annotation.RetentionPolicy;
6+
7+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_DEFAULT;
8+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_MUTED;
9+
import static com.flurgle.camerakit.CameraKit.Constants.AUDIO_VOICE_RECOGNITION_COMPATIBLE;
10+
11+
12+
/**
13+
* Created by yatsinar on 23/06/2017.
14+
*/
15+
@IntDef({AUDIO_DEFAULT, AUDIO_VOICE_RECOGNITION_COMPATIBLE, AUDIO_MUTED})
16+
@Retention(RetentionPolicy.SOURCE)
17+
public @interface Audio {
18+
19+
}

0 commit comments

Comments
 (0)