Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android设备之间同步视频捕获?_Android_Bluetooth_Synchronization_Timing_Mediarecorder - Fatal编程技术网

在Android设备之间同步视频捕获?

在Android设备之间同步视频捕获?,android,bluetooth,synchronization,timing,mediarecorder,Android,Bluetooth,Synchronization,Timing,Mediarecorder,我正在做一个项目,从两个安卓设备(一个玻璃杯和一个平板电脑)捕获和上传视频,这两个设备通过蓝牙相互通信。我的同步、上传和捕获过程(使用一台设备控制另一台设备)运行良好,但我无法(通过MediaRecorder)使录制保持同步。目前的进程是: 从玻璃上发送开始信息,并在玻璃上开始5秒倒计时 在开始信息中,在平板电脑上开始5秒倒计时 在倒计时结束时,开始在两台设备上录制 当玻璃发出停止信号时,停止录音并上传 请注意,这假定倒计时将在完全相同的时间开始,并且MediaRecorder在两台设备上的

我正在做一个项目,从两个安卓设备(一个玻璃杯和一个平板电脑)捕获和上传视频,这两个设备通过蓝牙相互通信。我的同步、上传和捕获过程(使用一台设备控制另一台设备)运行良好,但我无法(通过MediaRecorder)使录制保持同步。目前的进程是:

  • 从玻璃上发送开始信息,并在玻璃上开始5秒倒计时
  • 在开始信息中,在平板电脑上开始5秒倒计时
  • 在倒计时结束时,开始在两台设备上录制
  • 当玻璃发出停止信号时,停止录音并上传

请注意,这假定倒计时将在完全相同的时间开始,并且MediaRecorder在两台设备上的准备和启动时间完全相同。这种简单的方法可以大致同步(文件之间的差异小于500毫秒),但我知道必须有更好的方法。我知道问题的一部分是蓝牙消息的传递和操作会引入延迟,但我不确定如何解决这个问题。我尝试添加额外的同步和启动消息来补偿倒计时延迟,但这些添加的开销似乎使问题变得更糟。密切同步媒体录制时间(或者我猜其他密集活动)的最佳方式是什么?我知道一些延迟是不可避免的,但将其降低到100毫秒左右是可以接受的。

我建议改为在5秒钟内发送时间戳,并让他们在倒计时开始后立即准备录制,然后将他们两人的录制设置为与发送的时间戳完全一致,而不是在5秒钟之后,因此,无论消息需要多长时间才能到达,它们都会同时录制感谢Tomer,我必须对代码进行一些重构才能做到这一点,但这是一种很好的方法,对我来说效果很好。