iPhone 2.2 SDK offers undocumented TV-out features

By Erica Sadun | Published: November 26, 2008 - 03:33PM CT

The other day, Ars showed you how to dump iPhone frameworks. Today, we can confirm that the updated MediaPlayer framework (it's a public framework) offers a working solution for exporting video out live to a connected TV screen.

The MPTVOutWindow class allows your iPhone to send its video to a connected TV rather than to the built-in screen. Intended to be used with movies, the unpublished class creates a live video feed that is sent out through the iPhone's connector port. End-users will need to buy a video adapter or cable to use this functionality.

The following video shows the TV-out feature in action. Notice that the user attempts no interaction with the iPhone screen, as video-out blocks off all screen interaction (any touches are ignored). That's why I chose to use the accelerometer as my input controller. When preparing this post, time did not permit building a control language out of the accelerometer, but I could easily have added shakes and other gestures to allow, for example, moving through a PowerPoint-style presentation even with the touchscreen access cut off.

Another thing to notice on my video above is the relative on-screen cutoff of my arrow presentation. It is built in portrait mode, and I suspect the MPTVOutWindow class is meant for landscape use. Beyond the touch lock-out and landscape/portrait limitations, you can see that the video output was clean and smooth. The arrow feedback was no different on the TV screen than it was on the iPhone screen, including any perceived arrow "jumps" as the accelerometer feedback updated the arrow's orientation.

With touch disabled, this technology will not let you produce live interactive demonstrations with normal programs. You cannot use it in SpringBoard, for example, to livecast your phone. Dumped methods like - (BOOL)_canExistBeyondSuspension; suggest that playback can be paused and resumed when phone calls arrive, but promise little beyond that. When tested with Backgrounder, my test app paused and resumed successfully but the arrow remained frozen whenever the Application was not frontmost.

Update: Since writing this post originally, I have learned of more video out developments. iPhone developers Drunkenbass and Greg "go2" Hartstein have made strides with interactive video-out projects. Drunknbass put together an interactive game with video out, going far beyond my little demo. He tells me that he's limited to 15fps output and that there's still a lot of work to be done integrating user input through a second UIWindow. Greg is working on an unrelated project. Hopefully, I'll be able to update this post with details once he gets back online.

Post your comment Print
Page: 1 2 3