我想使用我的Android应用程序实时从我的mi band 2请求传感器数据。我对此有些困难。我使用权限BLUETOOTH和BLUETOOTH_ADMIN。我检查了是否可以通过Bluetooth le默认API看到我的设备。我正在尝试使用此示例https://developers.google.com/fit/android/ble-sensors?hl=ru,而且每次我都处于onScanStopped且此回调没有任何解释时,所以我没有了解失败的原因。我的代码:
GoogleApiClient client = new GoogleApiClient.Builder(this)
.addApi(Fitness.SENSORS_API)
.addScope(new Scope(Scopes.FITNESS_ACTIVITY_READ))
.addScope(new Scope(Scopes.FITNESS_BODY_READ))
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
client.connect();
Run Code Online (Sandbox Code Playgroud)
在onConnected上,我有:
Fitness.getBleClient(this, GoogleSignIn.getLastSignedInAccount(this))
.startBleScan(Arrays.asList(DataType.TYPE_ACTIVITY_SEGMENT), 60, bleScanCallbacks)
.addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d("TAG_F", "onComplete: " + task.isSuccessful());
}
});
Run Code Online (Sandbox Code Playgroud)
在这里,我还尝试了所有这些数据类型 DataType.TYPE_STEP_COUNT_DELTA, DataType.TYPE_HEART_RATE_BPM
这表明我的扫描成功。但是在60秒后进行回调时,我得到onScanStopped:
private BleScanCallback bleScanCallbacks = new BleScanCallback() {
@Override
public void onDeviceFound(BleDevice bleDevice) {
Log.d("TAG_F", "onDeviceFound: " + bleDevice.getDataTypes());
}
@Override
public void onScanStopped() {
Log.d("TAG_F", "onScanStopped: "); …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 Android 相机(由 MediaCodec 编码)捕获 h264 帧并将它们传递给在同一设备上运行的 FFmpeg 进程。
我目前通过将我从 MediaCodec 接收到的编码字节数组写入名为 out.h264 的文件来实现。
像这样:
FileOutputStream fosVideo = new ...
...
// encoder callback
@Override
public void onVideoData(ByteBuffer h264Buffer, MediaCodec.BufferInfo info) {
fosVideo.write(h264Buffer);
}
Run Code Online (Sandbox Code Playgroud)
在写入 h264 文件时,我启动 FFmpeg 进程并提供 h264 文件作为输入。
ffmpeg -re -i out.h264 -c:v copy -r 30 -loglevel 48 a.mp4
Run Code Online (Sandbox Code Playgroud)
我也试过
ffmpeg -re -framerate 25 -i out.h264 -c:v copy -r 30 -loglevel 48 a.mp4
Run Code Online (Sandbox Code Playgroud)
FFmpeg 进程在 10 秒到几分钟之间运行,然后突然停止:
frame= 330 fps= 29 q=31.0 size= 512kB time=00:00:10.98 bitrate= 381.8kbits/s …Run Code Online (Sandbox Code Playgroud)