public static RecordingResult StartRecording(IntPtr sessionHandle, ARCoreRecordingConfig config) { IntPtr recordingConfigHandle = RecordingConfigApi.Create(sessionHandle, config); ApiArStatus status = ExternApi.ArSession_startRecording( sessionHandle, recordingConfigHandle); RecordingConfigApi.Destroy(recordingConfigHandle); // Only specific ArStatus responses are expected. switch (status) { case ApiArStatus.Success: return(RecordingResult.OK); case ApiArStatus.ErrorIllegalState: return(RecordingResult.ErrorIllegalState); case ApiArStatus.ErrorInvalidArgument: return(RecordingResult.ErrorInvalidArgument); case ApiArStatus.ErrorRecordingFailed: return(RecordingResult.ErrorRecordingFailed); default: Debug.LogErrorFormat("Attempt to start a recording failed with unexpected " + "status: {0}", status); break; } return(RecordingResult.ErrorRecordingFailed); }
public static IntPtr Create(IntPtr sessionHandle, ARCoreRecordingConfig config) { IntPtr configHandle = IntPtr.Zero; #if UNITY_ANDROID ExternApi.ArRecordingConfig_create(sessionHandle, ref configHandle); if (config != null) { ExternApi.ArRecordingConfig_setMp4DatasetFilePath( sessionHandle, configHandle, config.Mp4DatasetFilepath); ExternApi.ArRecordingConfig_setAutoStopOnPause( sessionHandle, configHandle, config.AutoStopOnPause ? 1 : 0); foreach (Track track in config.Tracks) { IntPtr trackHandle = TrackApi.Create(sessionHandle, track); ExternApi.ArRecordingConfig_addTrack(sessionHandle, configHandle, trackHandle); // Internally the recording config uses the TrackData to generate its // own local structures, so it is appropriate to destroy it after sending it to // the recording config. TrackApi.Destroy(trackHandle); } } #endif return(configHandle); }
public IntPtr Create(ARCoreRecordingConfig config) { IntPtr configHandle = IntPtr.Zero; ExternApi.ArRecordingConfig_create( _nativeSession.SessionHandle, ref configHandle); if (config != null) { ExternApi.ArRecordingConfig_setMp4DatasetFilePath( _nativeSession.SessionHandle, configHandle, config.Mp4DatasetFilepath); ExternApi.ArRecordingConfig_setAutoStopOnPause( _nativeSession.SessionHandle, configHandle, config.AutoStopOnPause ? 1 : 0); foreach (Track track in config.Tracks) { IntPtr trackHandle = _nativeSession.TrackApi.Create(track); ExternApi.ArRecordingConfig_addTrack(_nativeSession.SessionHandle, configHandle, trackHandle); // Internally the recording config uses the Track to generate its own local // structures, so it is appropriate to destroy it after sending it to the // recording config. _nativeSession.TrackApi.Destroy(trackHandle); } } return(configHandle); }
public static RecordingResult StartRecording( IntPtr sessionHandle, ARCoreRecordingConfig config) { IntPtr recordingConfigHandle = RecordingConfigApi.Create(sessionHandle, config); ApiArStatus status = ExternApi.ArSession_startRecording( sessionHandle, recordingConfigHandle); RecordingConfigApi.Destroy(recordingConfigHandle); return(status.ToRecordingResult()); }
public static RecordingResult StartRecording( IntPtr sessionHandle, ARCoreRecordingConfig config) { ApiArStatus status = ApiArStatus.ErrorFatal; #if UNITY_ANDROID IntPtr recordingConfigHandle = RecordingConfigApi.Create(sessionHandle, config); status = ExternApi.ArSession_startRecording(sessionHandle, recordingConfigHandle); RecordingConfigApi.Destroy(recordingConfigHandle); #endif return(status.ToRecordingResult()); }
/// <summary> /// Checks if there exists a pre-recorded dataset on start. If so, show the PlayBack button. /// </summary> private void Start() { _recordingConfig = ScriptableObject.CreateInstance <ARCoreRecordingConfig>(); _filenameToSave = GetDefaultDatasetName(); _recordingConfig.Mp4DatasetFilepath = _filenameToSave; if (System.IO.File.Exists(Application.persistentDataPath + "/" + _defaultDatasetName)) { PlaybackButton.gameObject.SetActive(true); } _recordingManager = gameObject.AddComponent <ARRecordingManager>(); _playbackManager = gameObject.AddComponent <ARPlaybackManager>(); }
public static IntPtr Create(IntPtr sessionHandle, ARCoreRecordingConfig config) { IntPtr configHandle = IntPtr.Zero; ExternApi.ArRecordingConfig_create(sessionHandle, ref configHandle); if (config != null) { ExternApi.ArRecordingConfig_setMp4DatasetFilePath( sessionHandle, configHandle, config.Mp4DatasetFilepath); ExternApi.ArRecordingConfig_setAutoStopOnPause( sessionHandle, configHandle, config.AutoStopOnPause ? 1 : 0); } return(configHandle); }