Я сделал приложение iOS с UIWebView, которое загружает плеер YouTube iFrame. Все прошло хорошо, и он даже может воспроизводить видео на фоне только одной проблемы.
Эта проблема возникает только с этого месяца, и это происходит не только с последним обновлением (iOS 8.3), но и с iOS 8.1, поэтому я полагаю, что он имеет какое-то отношение к недавней модификации API iFrame YouTube.
На iOS 8 (только iOS 8 на устройстве, а не на iOS до 8 и даже на эмуляторе), когда я помещаю приложение в фоновый режим (например, перейдите на главный экран, заблокируйте устройство), воспроизведение видео обычно, но как только видео будет завершено, и приложение попытается загрузить следующее видео в плейлисте приложения, приложение выйдет из строя (на самом деле это похоже на то, что силы iOS завершают его.)
В WebThread есть EXC_BAD_ACCESS с
libGPUSupportMercury.dylib gpus_ReturnNotPermittedKillClient
а соответствующий стек вызовов в журнале сбоев выглядит следующим образом:
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
просто поставил, по моему мнению, когда я вызываю YTPlayer.loadVideoById(...) API YouTube загружает видео и пытается создать новый контекст рендеринга WebGL, который не разрешает iOS (связанные с GL-инструкциями в фоновом режиме не разрешено), поэтому он завершает работу приложения.
Я искал Google и царапал себе голову на целую неделю, чтобы справиться с этим, но без везения никто не знает, как с этим справиться?
Большое вам спасибо за любое предложение и любую помощь!!!