https://github.com/tornaco/systemrecapi
Android录屏框架,目的是使用system uid实现(内录)submix的录制。
https://github.com/tornaco/systemrecapi
recorder screen
Last synced: about 1 year ago
JSON representation
Android录屏框架,目的是使用system uid实现(内录)submix的录制。
- Host: GitHub
- URL: https://github.com/tornaco/systemrecapi
- Owner: Tornaco
- Created: 2017-07-24T04:37:18.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-02-28T06:55:56.000Z (over 4 years ago)
- Last Synced: 2025-03-24T20:51:12.610Z (over 1 year ago)
- Topics: recorder, screen
- Language: Java
- Homepage:
- Size: 21.7 MB
- Stars: 106
- Watchers: 4
- Forks: 18
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# SystemRecApi
> 基于CS模式,服务端安装于System下,拥有系统权限。客户端安装于data下(普通安装),通过aidl和服务断通讯。
### 客户端Gradle编译
[](https://jitpack.io/#Tornaco/SystemRecApi)
* Add it in your root build.gradle at the end of repositories:
```gradle
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
```
* Add the dependency
```gradle
dependencies {compile 'com.github.Tornaco:SystemRecApi:v1.3'}
```
### Build in travis
[](https://travis-ci.org/Tornaco/SystemRecApi)
### 服务端的API调用(先确保服务端已经安装)
所有API均集成于```RecBridgeServiceProxy```
1. 获取其实例
```java
RecBridgeServiceProxy proxy = RecBridgeServiceProxy.from(this);
```
2. 开始录制
```java
RecBridgeServiceProxy.from(context)
.start(IParam.builder()
.audioSource(settingsProvider.getInt(SettingsProvider.Key.AUDIO_SOURCE))
.frameRate(settingsProvider.getInt(SettingsProvider.Key.FAME_RATE))
.audioBitrate(settingsProvider.getInt(SettingsProvider.Key.AUDIO_BITRATE_RATE_K))
.orientation(settingsProvider.getInt(SettingsProvider.Key.ORIENTATION))
.resolution(settingsProvider.getString(SettingsProvider.Key.RESOLUTION))
.stopOnScreenOff(settingsProvider.getBoolean(SettingsProvider.Key.SCREEN_OFF_STOP))
.useMediaProjection(!isPlatformBridge)
.stopOnShake(settingsProvider.getBoolean(SettingsProvider.Key.SHAKE_STOP))
.shutterSound(settingsProvider.getBoolean(SettingsProvider.Key.SHUTTER_SOUND))
.path(SettingsProvider.get().createVideoFilePath())
.showNotification(true)
.showTouch(settingsProvider.getBoolean(SettingsProvider.Key.SHOW_TOUCH))
.build(),
```
3. 停止录制
```java
proxy.stop();
```
4. 监听(sticky)
```java
proxy.watch(new IWatcher.Stub() {
@Override
public void onStart() throws RemoteException {
}
@Override
public void onStop() throws RemoteException {
}
@Override
public void onElapsedTimeChange(String s) throws RemoteException {
}
});
```