事前準備

THETA clientのインスタンス作成

インスタンス作成時にカメラの日時設定、言語設定、シャッター音量設定、スリープまでの時間設定、電源オフまでの時間設定を行うこともできます。

import com.ricoh360.pf.theta.ThetaRepository

val thetaUrl = "192.168.1.1:80"
val thetaConfig = ThetaRepository.Config()
// thetaConfig.dateTime = "2023:01:01 12:34:56+09:00"
// set current time
// thetaConfig.language = ThetaRepository.LanguageEnum.EN_US
// thetaConfig.shutterVolume = 40 // 0 to 100
// thetaConfig.sleepDelay = ThetaRepository.SleepDelayEnum.SLEEP_DELAY_5M
// thetaConfig.offDelay = ThetaRepository.OffDelayEnum.DISABLE
thetaRepository = ThetaRepository.newInstance(thetaUrl, thetaConfig)

静止画を撮影する

まずPhotoCapture.Builderを使って撮影設定を行い、PhotoCaptureオブジェクトを生成します。

class TakenCallback : PhotoCapture.TakePictureCallback {
	override fun onSuccess(fileUrl: String) {
		// get JPEG file
	}
	override fun onError(exception: ThetaRepository.ThetaRepositoryException) {
		// error processing
	}
}

thetaRepository.getPhotoCaptureBuilder()
	.setExposureProgram(ThetaRepository.ExposureProgramEnum.NORMAL_PROGRAM)
	.setWhiteBalance(ThetaRepository.WhiteBalanceEnum.AUTO)
	.setExposureCompensation(ThetaRepository.ExposureCompensationEnum.ZERO)
	.setIsoAutoHighLimit(ThetaRepository.IsoAutoHighLimitEnum.ISO_800)
	.setFilter(ThetaRepository.FilterEnum.HDR)
	.setExposureDelay(ThetaRepository.ExposureDelayEnum.DELAY_OFF) // self-timer
	.setFileFormat(ThetaRepository.IMAGE_11K)
	.build()
	.takePicture(TakenCallback())

プレビューを表示する方法はプレビューを表示するをご覧ください。

静止画撮影時に設定できる項目

機種 解像度指定 横(pixel) 縦(pixel)
THETA X IMAGE_11K 11,008 5,504
THETA X IMAGE_5_5K 5,504 2,752
THETA Z1 IMAGE_6_7K 6,720 3,360
THETA S, SC, SC2, V IMAGE_5K 5,376 2,688