ShadowMediaRecorder.java revision 31af8607e2c7da6ba8708f57c4b67b6b4aaad921
131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesipackage com.xtremelabs.robolectric.shadows; 231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport com.xtremelabs.robolectric.util.Implementation; 431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport com.xtremelabs.robolectric.util.Implements; 531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.hardware.Camera; 731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.media.MediaRecorder; 831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.view.Surface; 931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 1031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi/** 1131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi * Shadows the {@code MediaRecorder} class. 1231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi * 1331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi */ 1431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi@Implements( MediaRecorder.class ) 1531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesipublic class ShadowMediaRecorder { 1631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 1731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi // Recording machine state, as per: 1831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi // http://developer.android.com/reference/android/media/MediaRecorder.html 1931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_ERROR = -1; 2031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_INITIAL = 1; 2131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_INITIALIZED = 2; 2231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_DATA_SOURCE_CONFIGURED = 3; 2331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_PREPARED = 4; 2431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_RECORDING = 5; 2531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public static final int STATE_RELEASED = 6; 2631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 2731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int state; 2831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 2931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private Camera camera; 3031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int audioChannels; 3131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int audioEncoder; 3231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int audioBitRate; 3331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int audioSamplingRate; 3431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int audioSource; 3531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int maxDuration; 3631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private long maxFileSize; 3731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private String outputPath; 3831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int outputFormat; 3931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoEncoder; 4031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoBitRate; 4131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoFrameRate; 4231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoWidth; 4331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoHeight; 4431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private int videoSource; 4531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 4631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private Surface previewDisplay; 4731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private MediaRecorder.OnErrorListener errorListener; 4831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi private MediaRecorder.OnInfoListener infoListener; 4931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 5031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void __constructor__() { 5131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_INITIAL; 5231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 5331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 5431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 5531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setAudioChannels(int numChannels) { 5631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi audioChannels = numChannels; 5731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 5831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 5931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 6031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setAudioEncoder(int audio_encoder) { 6131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi audioEncoder = audio_encoder; 6231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 6331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 6431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 6531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 6631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setAudioEncodingBitRate(int bitRate) { 6731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi audioBitRate = bitRate; 6831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 6931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 7031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 7131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setAudioSamplingRate(int samplingRate) { 7231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi audioSamplingRate = samplingRate; 7331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 7431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 7531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 7631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setAudioSource(int audio_source) { 7731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi audioSource = audio_source; 7831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_INITIALIZED; 7931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 8031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 8131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 8231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setCamera( Camera c ) { 8331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi camera = c; 8431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 8531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 8631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 8731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setMaxDuration(int max_duration_ms) { 8831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi maxDuration = max_duration_ms; 8931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 9031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 9131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 9231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setMaxFileSize(long max_filesize_bytes) { 9331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi maxFileSize = max_filesize_bytes; 9431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 9531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 9631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 9731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setOnErrorListener(MediaRecorder.OnErrorListener l) { 9831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi errorListener = l; 9931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 10031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 10131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 10231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setOnInfoListener(MediaRecorder.OnInfoListener listener) { 10331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi infoListener = listener; 10431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 10531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 10631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 10731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setOutputFile(String path) { 10831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi outputPath = path; 10931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 11031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 11131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 11231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 11331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setOutputFormat(int output_format) { 11431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi outputFormat = output_format; 11531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 11631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 11731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 11831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 11931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setPreviewDisplay(Surface sv) { 12031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi previewDisplay = sv; 12131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 12231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 12331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 12431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 12531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setVideoEncoder(int video_encoder) { 12631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoEncoder = video_encoder; 12731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 12831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 12931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 13031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 13131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setVideoEncodingBitRate(int bitRate) { 13231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoBitRate = bitRate; 13331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 13431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 13531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 13631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setVideoFrameRate(int rate) { 13731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoFrameRate = rate; 13831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 13931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 14031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 14131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 14231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setVideoSize(int width, int height) { 14331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoWidth = width; 14431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoHeight = height; 14531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_DATA_SOURCE_CONFIGURED; 14631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 14731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 14831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 14931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void setVideoSource(int video_source) { 15031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi videoSource = video_source; 15131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_INITIALIZED; 15231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 15331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 15431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 15531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void prepare() { 15631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_PREPARED; 15731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 15831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 15931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 16031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void start() { 16131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_RECORDING; 16231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 16331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 16431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 16531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void stop() { 16631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_INITIAL; 16731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 16831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 16931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 17031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void reset() { 17131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_INITIAL; 17231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 17331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 17431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi @Implementation 17531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public void release() { 17631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi state = STATE_RELEASED; 17731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 17831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 17931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 18031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public Camera getCamera() { 18131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return camera; 18231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 18331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 18431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getAudioChannels() { 18531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return audioChannels; 18631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 18731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 18831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getAudioEncoder() { 18931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return audioEncoder; 19031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 19131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 19231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getAudioBitRate() { 19331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return audioBitRate; 19431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 19531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 19631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getAudioSamplingRate() { 19731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return audioSamplingRate; 19831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 19931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 20031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getAudioSource() { 20131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return audioSource; 20231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 20331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 20431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getMaxDuration() { 20531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return maxDuration; 20631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 20731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 20831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public long getMaxFileSize() { 20931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return maxFileSize; 21031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 21131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 21231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public String getOutputPath() { 21331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return outputPath; 21431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 21531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 21631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getOutputFormat() { 21731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return outputFormat; 21831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 21931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 22031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoEncoder() { 22131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoEncoder; 22231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 22331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 22431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoBitRate() { 22531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoBitRate; 22631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 22731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 22831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoFrameRate() { 22931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoFrameRate; 23031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 23131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 23231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoWidth() { 23331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoWidth; 23431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 23531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 23631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoHeight() { 23731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoHeight; 23831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 23931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 24031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getVideoSource() { 24131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return videoSource; 24231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 24331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 24431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public Surface getPreviewDisplay() { 24531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return previewDisplay; 24631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 24731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 24831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public MediaRecorder.OnErrorListener getErrorListener() { 24931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return errorListener; 25031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 25131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 25231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public MediaRecorder.OnInfoListener getInfoListener() { 25331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return infoListener; 25431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 25531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 25631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi public int getState() { 25731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi return state; 25831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi } 25931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi 26031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi} 261