小编Vad*_*ler的帖子

健身startBleScan成功,但使用MI Band 2扫描已停止

我想使用我的Android应用程序实时从我的mi band 2请求传感器数据。我对此有些困难。我使用权限BLUETOOTHBLUETOOTH_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 google-fit-sdk google-fit

8
推荐指数
1
解决办法
175
查看次数

Android FFmpeg - 来自 MediaCodec 的 Mux 编码的 h264 帧

我正在尝试从 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)

android ffmpeg h.264 android-ffmpeg android-mediacodec

5
推荐指数
0
解决办法
832
查看次数