The getLivePreview is very lag in theta-api2.1-ios-sdk

I’ve clone the theta-api2.1-ios-sdk from then build successfully on iPhone6s plus.

I also have a THETA SC2 with firmware 01.42.

I found the getLivePreview in the theta-api2.1-ios-sdk is so so lag.
But the preview function in iOS store THETA app looks better.

Is there any thing I should do to make the getLivePreview as good as the THETA app on iOS store?

This site has some information that might help.

In my tests, the following commands will stop livePreview:

  • listFiles
  • takePicture
  • startCapture
  • some setOptions
  • get image or video file

You need run camera.getLivePreview again.

The MotionJPEG stream from the SC2 appears to have EOF exceptions that may also cause problems. If you set your app to run camera.getLivePreview again if there is an error, it should work.

Hi Craig, Thanks for the reply.

I’ve checked the links that you provided.
What my understanding is, the iOS App on Apple Store is built from Flutter with “Smooth Playback” implementation.
And then the iOS demo project from is a native Objective-C code without “Smooth Playback”.

So I just wondering to know, for your own iOS native Objective-C project, is there anyway you apply for getLivePreview more smooth?


I’ve also tried Android demo app from

The getLivePreview looks better and smoother than iOS demo project.

I also test on iPhoneX and it looks better than iPhone6s for sure, but sometime it also get lag preview.

Would you have the same preview lag issue for iOS version from

Or anyway I should do to get the smooth preview like your THETA app in Apple Store.

Hi, sorry for the delay. Things slowed down for the New Year holiday.

First, if this is for a commercial deployment, please contact @jcasman as we can bring this up with RICOH and may be able to get more help.

Just to clarify a few things:

  • I don’t work for RICOH and don’t have access to the code for the official RICOH THETA mobile app that RICOH has in the app store
  • I believe that the RICOH THETA mobile app in the app store is made with Objective-C.
  • The Flutter demo was just for my test to illustrate a few concepts with MotionJPEG

I’m unfortunately not an expect on the Objective-C SDK and haven’t been able to trace the problem. I actually have the same problem with the Objective-C SDK. I built the Flutter demo to test the MotionJPEG stream from the SC2 and the MotionJPEG stream does appear to work reliably.