HBRecorder
1.0.0
이와 같은 도서관을 만들고 유지하려면 상당한 시간과 노력이 필요합니다.
감사를 표시하려면 아래에서 그렇게 할 수 있습니다.
가벼운 화면 및 오디오 녹음 안드로이드 라이브러리
API 레벨 21>이 필요합니다
여기에서 데모 앱을 다운로드하십시오
루트 빌드에 다음을 추가하십시오. 저장소 끝에서 Gradle :
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
앱 레벨 빌드에서 라이브러리 구현. 그레이드 :
dependencies {
implementation 'com.github.HBiSoft:HBRecorder:3.0.7'
}
Activity
에서 먼저 아래와 같이 HBRecorder
구현하십시오. public class MainActivity extends AppCompatActivity implements HBRecorderListener {
Alt+Enter
다음 방법을 구현하십시오. @ Override
public void HBRecorderOnStart () {
//When the recording starts
}
@ Override
public void HBRecorderOnComplete () {
//After file was created
}
@ Override
public void HBRecorderOnError ( int errorCode ) {
//When an error occurs
}
@ Override
public void HBRecorderOnPause () {
//When recording was paused
}
@ Override
public void HBRecorderOnResume () {
//When recording was resumed
}
HBRecorder
: public class MainActivity extends AppCompatActivity implements HBRecorderListener {
HBRecorder hbRecorder ;
@ Override
protected void onCreate ( Bundle savedInstanceState ) {
super . onCreate ( savedInstanceState );
setContentView ( R . layout . activity_main );
//Init HBRecorder
hbRecorder = new HBRecorder ( this , this );
}
< uses - permission android : name = "android.permission.WRITE_EXTERNAL_STORAGE" />
< uses - permission android : name = "android.permission.WRITE_INTERNAL_STORAGE" />
< uses - permission android : name = "android.permission.RECORD_AUDIO" />
< uses - permission android : name = "android.permission.FOREGROUND_SERVICE" />
<!-- For SDK 34 -->
< uses - permission android : name = "android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION" />
그게 다야, HBRecorder
이제 사용할 준비가되었습니다.
private void startRecordingScreen () {
MediaProjectionManager mediaProjectionManager = ( MediaProjectionManager ) getSystemService ( Context . MEDIA_PROJECTION_SERVICE );
Intent permissionIntent = mediaProjectionManager != null ? mediaProjectionManager . createScreenCaptureIntent () : null ;
startActivityForResult ( permissionIntent , SCREEN_RECORD_REQUEST_CODE );
}
@ Override
protected void onActivityResult ( int requestCode , int resultCode , Intent data ) {
super . onActivityResult ( requestCode , resultCode , data );
if ( requestCode == SCREEN_RECORD_REQUEST_CODE ) {
if ( resultCode == RESULT_OK ) {
//Start screen recording
hbRecorder . startScreenRecording ( data , resultCode );
}
}
}
// Set the output path as a String
// Only use this on devices running Android 9 and lower or you have to add android:requestLegacyExternalStorage="true" in your manifest
// Defaults to - Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_MOVIES)
hbrecorder . setOutputPath ( String );
// Set output Uri
// Only use this on devices running Android 10>
// When setting a Uri ensure you pass the same name to HBRecorder as what you set in ContentValues (DISPLAY_NAME and TITLE)
hbRecorder . setOutputUri ( Uri );
// Set file name as String
// Defaults to - quality + time stamp. For example HD-2019-08-14-10-09-58.mp4
hbrecorder . setFileName ( String );
// Set audio bitrate as int
// Defaults to - 128000
hbrecorder . setAudioBitrate ( int );
// Set audio sample rate as int
// Defaults to - 44100
hbrecorder . setAudioSamplingRate ( int );
// Enable/Disable audio
// Defaults to true
hbrecorder . isAudioEnabled ( boolean );
// Enable/Disable HD Video
// Defaults to true
hbrecorder . recordHDVideo ( boolean );
// Get file path as String
hbrecorder . getFilePath ();
// Get file name as String
hbrecorder . getFileName ();
// Start recording screen by passing it as Intent inside onActivityResult
hbrecorder . startScreenRecording ( Intent );
// Pause screen recording (only available for devices running 24>)
hbrecorder . pauseScreenRecording ();
// Resume screen recording
hbreccorder . resumeScreenRecording ();
// Stop screen recording
hbrecorder . stopScreenRecording ();
// Check if recording is in progress
hbrecorder . isBusyRecording ();
// Set notification icon by passing, for example R.drawable.myicon
// Defaults to R.drawable.icon
hbrecorder . setNotificationSmallIcon ( int );
// Set notification icon using byte array
hbrecorder . setNotificationSmallIcon ( byte []);
// Set notification icon using vector drawable
hbRecorder . setNotificationSmallIconVector ( vector );
// Set notification title
// Defaults to "Recording your screen"
hbrecorder . setNotificationTitle ( String );
// Set notification description
// Defaults to "Drag down to stop the recording"
hbrecorder . setNotificationDescription ( String );
// Set notification stop button text
// Defaults to "STOP RECORDING"
hbrecorder . setNotificationButtonText ( String );
// Set output orientation (in degrees)
hbrecorder . setOrientationHint ( int );
// Set max output file size
hbrecorder . setMaxFileSize ( long );
// Set max time (in seconds)
hbRecorder . setMaxDuration ( int );
사용자 정의 설정을 활성화하려면 먼저 호출해야합니다.
hbRecorder . enableCustomSettings ();
그런 다음 다음을 설정할 수 있습니다.
//MUST BE ONE OF THE FOLLOWING - https://developer.android.com/reference/android/media/MediaRecorder.AudioSource.html
hbRecorder . setAudioSource ( String );
//MUST BE ONE OF THE FOLLOWING - https://developer.android.com/reference/android/media/MediaRecorder.VideoEncoder.html
hbRecorder . setVideoEncoder ( String );
//If nothing is provided, it will select the highest value supported by your device
hbRecorder . setScreenDimensions ( HeightInPx , WidthInPx );
//Frame rate is device dependent
//You can use Camcoderprofile to determine the frame rate
hbRecorder . setVideoFrameRate ( int );
//The bitrate is also dependent on the device and the frame rate that is set
hbRecorder . setVideoBitrate ( int );
//MUST BE ONE OF THE FOLLOWING - https://developer.android.com/reference/android/media/MediaRecorder.OutputFormat.html
hbRecorder . setOutputFormat ( String );
제한은 장치 의존적이라는 점에 유의해야합니다. 비디오 인코더를 "기본값"으로 설정하고 MediaRecorder
최고의 인코더를 선택하도록하는 것이 가장 좋습니다.
데모 앱에서는 다른 비디오 인코더, 비트 전송, 프레임 속도 및 출력 형식을 테스트 할 수있는 옵션이 있습니다. 장치가 선택한 매개 변수를 지원하지 않으면 선택한 HBRecorderOnError
호출됩니다.