diff --git a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java index 3eb59e9b..4ee81244 100644 --- a/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java +++ b/cameraview/src/androidTest/java/com/otaliastudios/cameraview/CameraViewTest.java @@ -779,18 +779,12 @@ public class CameraViewTest extends BaseTest { public void testAudioCodec() { cameraView.set(AudioCodec.DEVICE_DEFAULT); assertEquals(cameraView.get(AudioCodec.class), AudioCodec.DEVICE_DEFAULT); - cameraView.set(AudioCodec.AMR_NB); - assertEquals(cameraView.get(AudioCodec.class), AudioCodec.AMR_NB); - cameraView.set(AudioCodec.AMR_WB); - assertEquals(cameraView.get(AudioCodec.class), AudioCodec.AMR_WB); cameraView.set(AudioCodec.AAC); assertEquals(cameraView.get(AudioCodec.class), AudioCodec.AAC); cameraView.set(AudioCodec.HE_AAC); assertEquals(cameraView.get(AudioCodec.class), AudioCodec.HE_AAC); cameraView.set(AudioCodec.AAC_ELD); assertEquals(cameraView.get(AudioCodec.class), AudioCodec.AAC_ELD); - cameraView.set(AudioCodec.VORBIS); - assertEquals(cameraView.get(AudioCodec.class), AudioCodec.VORBIS); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 83b43f23..89eb0016 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -1655,12 +1655,9 @@ public class CameraView extends FrameLayout implements LifecycleObserver { * Defaults to {@link AudioCodec#DEVICE_DEFAULT}. * * @see AudioCodec#DEVICE_DEFAULT - * @see AudioCodec#AMR_NB - * @see AudioCodec#AMR_WB * @see AudioCodec#AAC * @see AudioCodec#HE_AAC * @see AudioCodec#AAC_ELD - * @see AudioCodec#VORBIS * * @param codec requested audio codec */ diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/controls/AudioCodec.java b/cameraview/src/main/java/com/otaliastudios/cameraview/controls/AudioCodec.java index 8d85c4a3..b7d56114 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/controls/AudioCodec.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/controls/AudioCodec.java @@ -21,38 +21,22 @@ public enum AudioCodec implements Control { */ DEVICE_DEFAULT(0), - /** - * The AMR_NB codec. - */ - AMR_NB(1), - - /** - * The AMR_WB codec. - */ - AMR_WB(2), - /** * The AAC codec. */ - AAC(3), + AAC(1), /** * The HE_AAC codec. */ @RequiresApi(Build.VERSION_CODES.JELLY_BEAN) - HE_AAC(4), + HE_AAC(2), /** * The AAC_ELD codec. */ @RequiresApi(Build.VERSION_CODES.JELLY_BEAN) - AAC_ELD(5), - - /** - * The VORBIS codec. - */ - @RequiresApi(Build.VERSION_CODES.LOLLIPOP) - VORBIS(6); + AAC_ELD(3); static final AudioCodec DEFAULT = DEVICE_DEFAULT; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java index a5d87713..1bcca128 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/FullVideoRecorder.java @@ -109,11 +109,7 @@ public abstract class FullVideoRecorder extends VideoRecorder { mProfile.fileFormat = MediaRecorder.OutputFormat.MPEG_4; // should work } // Set audio codec if the user has specified a specific codec. - if (stub.audioCodec == AudioCodec.AMR_NB) { - mProfile.audioCodec = MediaRecorder.AudioEncoder.AMR_NB; - } else if (stub.audioCodec == AudioCodec.AMR_WB) { - mProfile.audioCodec = MediaRecorder.AudioEncoder.AMR_WB; - } else if (stub.audioCodec == AudioCodec.AAC) { + if (stub.audioCodec == AudioCodec.AAC) { mProfile.audioCodec = MediaRecorder.AudioEncoder.AAC; } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && stub.audioCodec == AudioCodec.HE_AAC) { @@ -121,9 +117,6 @@ public abstract class FullVideoRecorder extends VideoRecorder { } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN && stub.audioCodec == AudioCodec.AAC_ELD) { mProfile.audioCodec = MediaRecorder.AudioEncoder.AAC_ELD; - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP - && stub.audioCodec == AudioCodec.VORBIS) { - mProfile.audioCodec = MediaRecorder.AudioEncoder.VORBIS; } mMediaRecorder.setOutputFormat(mProfile.fileFormat); diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java b/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java index 1bf2478e..fa0e2bc1 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/video/SnapshotVideoRecorder.java @@ -144,18 +144,13 @@ public class SnapshotVideoRecorder extends VideoRecorder implements RendererFram case DEVICE_DEFAULT: videoType = "video/avc"; break; } String audioType = ""; - if (mResult.audioCodec == AudioCodec.AMR_NB) { - audioType = "audio/3gpp"; - } else if (mResult.audioCodec == AudioCodec.AMR_WB) { - audioType = "audio/amr-wb"; - } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP - && mResult.audioCodec == AudioCodec.VORBIS) { - audioType = "audio/vorbis"; - } else if (mResult.audioCodec == AudioCodec.AAC - || mResult.audioCodec == AudioCodec.HE_AAC - || mResult.audioCodec == AudioCodec.AAC_ELD - || mResult.audioCodec == AudioCodec.DEVICE_DEFAULT) { - audioType = "audio/mp4a-latm"; + switch (mResult.audioCodec) { + case AAC: + case HE_AAC: + case AAC_ELD: + audioType = "audio/mp4a-latm"; break; + case DEVICE_DEFAULT: + audioType = "audio/3gpp"; } TextureConfig videoConfig = new TextureConfig(); AudioConfig audioConfig = new AudioConfig(); diff --git a/cameraview/src/main/res/values/attrs.xml b/cameraview/src/main/res/values/attrs.xml index d61525ae..fb6bc1b7 100644 --- a/cameraview/src/main/res/values/attrs.xml +++ b/cameraview/src/main/res/values/attrs.xml @@ -143,12 +143,9 @@ - - - - - - + + + diff --git a/docs/_docs/controls.md b/docs/_docs/controls.md index eada8efb..2310648c 100644 --- a/docs/_docs/controls.md +++ b/docs/_docs/controls.md @@ -76,7 +76,6 @@ Sets the audio encoder for video recordings. Defaults to `DEVICE_DEFAULT`, which should typically be AAC. The available values are exposed through the `CameraOptions` object. -`AudioCodec.VORBIS` is optionally supported on devices running Lolipop and above. `AudioCodec.HE_AAC` and `AudioCodec.AAC_ELD` require at least JellyBean. The library will safely fall back to device default if the min API requirements @@ -84,12 +83,9 @@ are not met. ```java cameraView.setAudioCodec(AudioCodec.DEVICE_DEFAULT); -cameraView.setAudioCodec(AudioCodec.AMR_NB); -cameraView.setAudioCodec(AudioCodec.AMR_WB); cameraView.setAudioCodec(AudioCodec.AAC); cameraView.setAudioCodec(AudioCodec.HE_AAC); cameraView.setAudioCodec(AudioCodec.AAC_ELD); -cameraView.setAudioCodec(AudioCodec.VORBIS); ``` ##### cameraWhiteBalance