Saving video screencast of iPhone application - ios

Is there a way to capture video of a screen from your own application? As far as I see there is no way to do it with UIImagePickerController (cameras only), but maybe there is a way to do it with iOS 4 AV Foundation or Core Video?

There seems to be two ways of capturing the content of the application while it's running:
Use the private API UIGetScreenImage() function which seems to be accepted by Apple now;
Use the following thread's captureView method to capture the image.
You'll have to capture it at many times per second (I guess 24 times should be ok for human eye persistence) then you'll have to produce the movie. Perhaps you could use the ffmpeg iphone port.
Alternatively, if you'd like to capture your application's running for a demo, your best bet would be to run your application on the simulator and use a Mac OS X screencast software to capture it. See also SimFinger which "bundle of little tricks to make a screen capture of the iPhone Simulator suck less".
Finally, perhaps the following StackOverflow thread might help you produce better screencasts.

SimFinger and ScreenFlow are great if you can shoot in the simulator.
If you have to shoot on the device (e.g. when accelerometer, GPS, camera, etc. are used) you currently have to resort to the jailbreak world. The app "Display Recorder", available for $5 in the Cydia Store, allows to create an AVI movie of the iPhone's screen content. This works across all apps. There's a YouTube video showing it. The movie files can then be uploaded to YouTube or pulled off the iPhone via the built-in web server.

Related

How to test ARKit app? Can ARKit app be tested using recorded video instead of live video?

Getting started with ARKit development. Imagine that testing an app in development between builds requires imaging an environment to expose the app to a scene and that having to physically hold and/or move camera to capture live scene will be extremely cumbersome each time.
Can an app be tested with recorded video in order to avoid having to capture a realtime scene each time an app has to be tested? If so, how to do so?
Unfortunately, there is no other way to test ARKit apps except running them on your device. I agree, it is a cumbersome process, but for now thats all we have. Hopefully, in the future, Apple will make some sort of AR simulator so that we can test our apps in a faster and easier way.
Yes you can record videos using Reality Composer, then airdrop them to your mac, add them to your Xcode project, edit the scheme to enable ARKit "Replay data" (it may only appear when a device is connected), then select your video in the drop-down list
Edit : screenshot made using Xcode 12.5.1

Audio in Unity WEBGL on IOS devices

I have a problem getting my audioclips to play on ios devices in webgl. I have seen other games with audio working so i know it is possible. Now after 3 days of trying to fix the issue with no luck i really hope you can help me with the problem. I know a solution where you can add some meta tags and save it as a Webapp on your phone. But that is not the solution i am looking for.
Here is an example of a game where the audio works fine in an ios browser http://temple-run2.com/
I quote:
Note that Unity WebGL content is not currently supported on mobile devices. It may still work, especially on high-end devices, but many current devices are not powerful enough and don’t have enough memory to support Unity WebGL content well.
more info
As so, uncontrolled behavior may (very likely) occur on mobile devices.
I know a solution where you can add some meta tags and save it as a
Webapp on your phone.
What is wrong with just building to iOS nativly?
If you really need 3D content in a webbrowser that's supported on mobile devices, take a look at threejs

How can i capture what's being played on an iOS device output audio stream and store it in an object?

Is there a way to programmatically capture what's being played on an iOS device audio output? I want to capture an audio snippet and do some data processing on it.
There is an entire library devoted to this sort of thing that Apple built in for you called AVFoundation.
It's extensive and sprawling, so be prepared to do some work, but you'll be able to sample and manipulate the bit-streams directly with all types of audio.
If you are trying to have your app run in the background and strip audio from another app (like iTunes) or from the phone itself, put on your black hat, hack into the private API's of iOS, and release your stuff over in the jailbroken app-store, because that sort of thing is explicitly designed to not be possible with legal and legitimate apps.

Can an app keep running while the screen is locked, on a jailbroken iphone?

I have an idea for an app that I'd like to develop, but before I invest a lot of time learning objective C and the iOS APIs, I'd like to make sure that what I want to do is feasible.
The app I want to make is a purely auditory (sound-only) version of Google Glass. I'm visually impaired, so spending a lot of money on something visual, even though it can read content to you, would not be worth it. But if I could use an iPhone to give many of the same options as Google Glass, that would be great.
Many times, I've wanted a piece of information while walking down the street, where I couldn't easily get to my iPhone, because I have my cane in one hand, and something else in the other. In such cases, it'd be awesome if I could say a command, and get a voice response.
I'd use the microphone built into the Apple earphones for audio input, but I'm not sure if it's possible to listen for audio input while the screen is locked. I'm certain it's not possible with a non-jailbroken iPhone.
Can anyone can tell me if this is possible?
Yes, you can do this.
In order to keep your app running all the time, even when the iPhone is locked, you could build a Launch Daemon. A launch daemon can start when the phone does, and is not subject to the restrictions that iOS puts on sandboxed apps, installed to /var/mobile/Applications/.
You do need to have a jailbroken device to take advantage of Launch Daemons. Here is a good tutorial on building one.
Launch Daemons are also a normal part of OS X, so if you need more information, you might try consulting the OS X docs online. Most aspects of Launch Daemons work the same way on a jailbroken iPhone.
You'll also want to be able to detect certain events, to activate your app. You certainly don't want to be processing an audio stream at all times (maybe you only activate the app when you start walking with your cane). To detect events, like a home button press (or however you want to activate your code), I would take a look at RPetrich's libactivator library.

What tool(s) can I use to produce iPhone App Screencasts? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I need to produce demonstration video screencasts for my iPhone app... I'm referring to those such as this one for the Reddit iPhone app (the one on the right, not the YouTube video).
I'm assuming the best way to do this is to record the simulator using a screen recording utility, does anyone have any other methods? What tools have you used successfully?
For my screencast here, I ran the application in the iPhone Simulator and recorded it all using ScreenFlow. I can't recommend ScreenFlow highly enough, as it really simplifies the whole process. ScreenFlow records your entire screen, but it provides excellent editing capabilities for cropping the video to the relevant 320 x 480 (or 480 x 320) section, as well as fading in and out title graphics or lettering. I also used SimFinger just to provide a good cursor, but I see that the latest release of ScreenFlow now has that capability built-in.
For a microphone, I actually used the USB one from Rock Band. It's a surprisingly good Logitech microphone that's recognized as soon as you plug it into your Mac.
I needed to do a little post-processing of the MP4 output to make sure that the video could be played natively on the iPhone. I've used both VisualHub and iMovie to produce MP4 videos with all the right settings to play on the device. Both have simple iPhone export profiles.
I'm surprised that nobody mentioned QuickTime's built-in screencasting feature.
Here's a little guide on how to make a "decent" screencast on Mac OS without any additional tool.
You will have better results if you use it with SIMBL, which was mentioned by a lot of people. it is not a screencasting application, but a tool to make your iOS screencast look better.
The author of Tweetie recently wrote a post about what he does, and a tool he wrote called SimFinger. Yes, it does record the simulator. If I were producing an iPhone screencast, that's where I would start.
SimFinger and ScreenFlow are great if you can shoot in the simulator.
If you have to shoot on the device (e.g. when accelerometer, GPS, camera, etc. are used) you currently have to resort to the jailbreak world. The app "Display Recorder", available for $5 in the Cydia Store, allows to create an AVI movie of the iPhone's screen content. This works across all apps. There's a YouTube video showing it. The movie files can then be uploaded to YouTube or pulled off the iPhone via the built-in web server.
You can try one of those few integrated solutions out there. I know one's called "capsim" and there's a new one called "sound stage"
Screen capture applications like ScreenFlow and "Snapz Pro X" work fine if you don't need to record mult-touch or accelerometer. However if you do, then you must choose another solution. Either film with a video camera or use iSimulator and then record the simulator using applications like ScreenFlow and "Snapz Pro X". For information how to install iSimulator see http://bobueland.com/cocos2d/?p=358
Another solution (that I haven´t tested yet) is to use screen mirroring. That is if you have iPad2 or iPhone4S. You need to buy Apple Digital AV Adapter (39 $ as of Nov 2011) and then you can mirror the iPad or iPhone screen onto an external screen.
For free Mac OS X screen recording with iPhone ad looking results, you can use use the Screenium demo app to record a flawless 30 second video of your iPhone simulator without limitations or overlays. Once you start making money from your app, the full product is cheap. Encoding to iPhone format provides a good lightweight output. Turn off the mouse for SimFinger. You can view an example video at 3k Top Chinese Characters. Definitely use SimFinger to add that realistic shine, and the iPhone device reflection users expect.
Longer term, I will buy the iSimulate iPhone app to see whether interacting with the iPhone's touch screen instead of the mouse to drive the screencast can give smoother, more realistic results (this also has advantages if you use the accelerometer or multitouch).
The solution I'm going with is SimFinger to provide the "finger" and SnapZ Pro X for recording. I read a great excerpt from an upcoming book on HTML 5 that convinced me that I should take the extra step of transcoding the .mov output from SnapZ Pro to Ogg for viewing in browsers that don't support .mov files. Get the XiphQT Quicktime component (I'd link to it, but I'm currently prevented from posting more than one link -- go to xiph.org), and QuickTime Player 7 will do the transcoding for you - no QuickTime Pro needed!
ScreenFlow looks great, but I already had SnapZ Pro and can't currently justify $99 when I can do it just as well with what I've got plus some free downloads.
I have used this free solution here for iPhone Simulator Capture, which is a SIMBL plugin that works by capturing the screen from the iPhone simulator. It is a bit raw, but good deal for the price.
There are two ways of doing it that I know of, for anyone who wants to create screencasts using tools available for free:
One: you can use CamTwist and Adobe Flash Media Live Encoder to create FLV files. Details here on my blog.
Two: You can use Jing to create swf files.
Here's one of the screencast on my blog.
Please also notice that I'm not displaying the full iPhone screen on my blog, but you can easily do that.

Resources