Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/steelkiwi/AndroidRecording
Android Recording library offers convenient tools for audio/video recording and playback
https://github.com/steelkiwi/AndroidRecording
Last synced: 3 months ago
JSON representation
Android Recording library offers convenient tools for audio/video recording and playback
- Host: GitHub
- URL: https://github.com/steelkiwi/AndroidRecording
- Owner: steelkiwi
- License: apache-2.0
- Created: 2013-11-11T15:49:55.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2018-02-03T05:57:04.000Z (almost 7 years ago)
- Last Synced: 2024-07-01T10:55:42.103Z (4 months ago)
- Language: Java
- Size: 727 KB
- Stars: 420
- Watchers: 31
- Forks: 145
- Open Issues: 14
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Android Recording Library
=======================================Android Recording library offers convenient tools for audio/video recording and playback.
For audio it uses:
* AudioRecord to capture and save audio signal from microphone
* MediaPlayer with MediaController to play recorded audio
* custom Visualizer (like bar chart) to represent audio signal on screen while recording and during playbackFor video it uses:
* Camera and MediaRecorder to record a video of specified resolution
* MediaPlayer with MediaController to play recorded video
* custom SurfaceView with adjustable size to properly display Camera preview and recorded video (in portrait and landscape modes)Record audio: how to use
------------------------1. Setup VisualizerView
```xml
```
```java
visualizerView = (VisualizerView) findViewById(R.id.visualizerView);
setupVisualizer();
...
private void setupVisualizer() {
Paint paint = new Paint();
paint.setStrokeWidth(5f); //set bar width
paint.setAntiAlias(true);
paint.setColor(Color.argb(200, 227, 69, 53)); //set bar color
BarGraphRenderer barGraphRendererBottom = new BarGraphRenderer(2, paint, false);
visualizerView.addRenderer(barGraphRendererBottom);
}
```2. Start recording thread
```java
private void startRecording() {
recordingThread = new AudioRecordingThread(fileName, new AudioRecordingHandler() { //pass file name where to store the recorded audio
@Override
public void onFftDataCapture(final byte[] bytes) {
runOnUiThread(new Runnable() {
public void run() {
if (visualizerView != null) {
visualizerView.updateVisualizerFFT(bytes); //update VisualizerView with new audio portion
}
}
});
}
@Override
public void onRecordSuccess() {}
@Override
public void onRecordingError() {}
@Override
public void onRecordSaveError() {}
});
recordingThread.start();
}
```3. When done, stop recording
```java
private void stopRecording() {
if (recordingThread != null) {
recordingThread.stopRecording();
recordingThread = null;
}
}
```Play audio: how to use
------------------------1. Setup VisualizerView
2. Setup AudioPlaybackManager. It will attach MediaPlayer to a VisualizerView
```java
playbackManager = new AudioPlaybackManager(this, visualizerView, playbackHandler);
playbackManager.setupPlayback(fileName); //pass file name of the recorded audio
```3. Use onscreen MediaController to play/pause/stop/rewind audio
Record video: how to use
------------------------1. Setup custom SurfaceView (AdaptiveSurfaceView)
```xml
```2. Setup RecordingManager
```java
videoView = (AdaptiveSurfaceView) findViewById(R.id.videoView);
recordingManager = new VideoRecordingManager(videoView, recordingHandler); //pass reference to custom SurfaceView
```3. Choose desired video resolution and pass it to RecordingManager, it will adjust size of AdaptiveSurfaceView to properly display Camera output
```java
recordingManager.setPreviewSize(videoSize);
```4. To start recording use
```java
recordingManager.startRecording(fileName, videoSize)
```5. To stop recording use
```java
recordingManager.stopRecording()
```Play video: how to use
------------------------1. Setup custom SurfaceView (AdaptiveSurfaceView)
2. Setup VideoPlaybackManager. It will attach MediaPlayer to a VisualizerView
```java
playbackManager = new VideoPlaybackManager(this, videoView, playbackHandler);
playbackManager.setupPlayback(fileName); //pass file name of the recorded video
```3. Use onscreen MediaController to play/pause/stop/rewind video
====================================
For more details, please, see the demo project.