Код: Выделить всё
Track trackA = new Track(session).setId(TRACK_A_ID);
Track trackB = new Track(session).setId(TRACK_B_ID);
RecordingConfig recordingConfig = new RecordingConfig(session)
...
.addTrack(trackA)
.addTrack(trackB);
session.startRecording(recordingConfig)
< /code>
Затем на каждом кадре: < /p>
private void recordCustomData(Frame frame) {
int value1 = 1;
int value2 = 2;
ByteBuffer byteBuffer1 = ByteBuffer.allocate(4);
byteBuffer1.putInt(value1);
ByteBuffer byteBuffer2 = ByteBuffer.allocate(4);
byteBuffer2.putInt(value2);
frame.recordTrackData(TRACK_A_ID, byteBuffer1);
frame.recordTrackData(TRACK_B_ID, byteBuffer2);
}
private void getCustomData(Frame frame) {
Log.d(TAG, "TRACK_A_ID track: " + frame.getUpdatedTrackData(TRACK_A_ID));
Log.d(TAG, "TRACK_B_ID track: " + frame.getUpdatedTrackData(TRACK_B_ID));
}
< /code>
Результат: < /h3>
Только один из двух треков когда -либо получает данные. Пример вывода журнала: < /p>
...
TRACK_A_ID track: [com.google.ar.core.TrackData]
TRACK_B_ID track: []
TRACK_A_ID track: [com.google.ar.core.TrackData]
TRACK_B_ID track: []
...
< /code>
Если я переключаю порядок регистрации, а также переводит порядок записи, другой трек получает данные вместо этого: < /p>
RecordingConfig recordingConfig = new RecordingConfig(session)
...
.addTrack(trackB)
.addTrack(trackA);
private void recordCustomData(Frame frame) {
...
frame.recordTrackData(TRACK_B_ID, byteBuffer2);
frame.recordTrackData(TRACK_A_ID, byteBuffer1);
}
< /code>
Вывод журнала становится: < /p>
...
TRACK_A_ID track: []
TRACK_B_ID track: [com.google.ar.core.TrackData]
TRACK_A_ID track: []
TRACK_B_ID track: [com.google.ar.core.TrackData]
...
< /code>
Мой вопрос: < /h3>
[list]
[*] На самом деле поддерживается ли он для записи на несколько пользовательских треков в одном и том же кадре /сеансе в Arcore? Все значения в один bytebuffer
[/list]
среда
[*] Протестировано на (физические устройства): Pixel 7 (Android 16), Pixel 3xl (Android 12)
arcore raster: 1.49.099.099. /> Использование: Официальный образец записи и воспроизведения (java) < /li>
< /ul>
Подробнее здесь: https://stackoverflow.com/questions/797 ... ple-tracks