I made an iOS app with UIWebView which loads YouTube iFrame player.
Everything went well and it can even keep playing video on background with only one problem.
This problem only happens since this month, and it happens not only on the latest update (iOS 8.3) but also on iOS 8.1, so I figure that it has something to do with some recent modification on the YouTube iFrame API.
On iOS 8 (only iOS 8 on the device, not any iOS before 8, and not even on the emulator,) when I put the app to background (e.g. go to home screen, lock the device,) the video plays normally, but once the video is finished and the app tries to load the next video on the app's playlist, the app crashes (actually it seems like iOS forces terminating it.)
There is an EXC_BAD_ACCESS on the WebThread with
Thread 6 name: WebThread
Thread 6 Crashed:
0 libGPUSupportMercury.dylib 0x000000018b829f90 gpus_ReturnNotPermittedKillClient + 12
1 libGPUSupportMercury.dylib 0x000000018b82af3c gpusSubmitDataBuffers + 168
2 WebCore 0x0000000191620820 WebCore::GraphicsContext3D::reshape(int, int) + 528
3 WebCore 0x0000000191e93ce0 WebCore::WebGLRenderingContext::initializeNewContext() + 1136
4 WebCore 0x0000000191e93594 WebCore::WebGLRenderingContext::WebGLRenderingContext(WebCore::HTMLCanvasElement*, WTF::PassRefPtr<WebCore::GraphicsContext3D>, WebCore::GraphicsContext3D::Attributes) + 600
5 WebCore 0x0000000191e92c54 WebCore::WebGLRenderingContext::create(WebCore::HTMLCanvasElement*, WebCore::WebGLContextAttributes*) + 1144
6 WebCore 0x000000019132f6ec WebCore::HTMLCanvasElement::getContext(WTF::String const&, WebCore::CanvasContextAttributes*) + 312
OK, I still don't have a working solution for this problem but I just figured out a work around.
It seems like YouTube iFrame player does not create WebGL rendering context as long as you don't call YTPlayer.loadVideoById (or cueVideoById, loadVideoByUrl, cueVideoByUrl, loadPlaylist, cuePlaylist.) So I just load all the video on my playlist with loadPlaylist whenever the playlist is changed.
With this work around, my app doesn't crash anymore. It's good but I still wonder if anyone has a real solution for this, please let me know and it's very much appreciated!!!