モジュールのbuild.gradle
のdependencies
に次を追加します。
implementation "com.ricoh360.thetaclient:theta-client:1.7.1"
THETA Clientを使用したアプリケーションが動作するスマートフォンと THETAを無線 LAN 接続しておきます。
インスタンス作成時にカメラの日時設定、言語設定、シャッター音量設定、スリープまでの時間設定、電源オフまでの時間設定を行うこともできます。
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 |