問題タブ [iosurface]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
screenshot - プライベート フレームワーク IOSurface で画面キャプチャを実行しようとすると、iOS 9 で動作しなくなったようです
私は、IOSurface プライベート フレームワークを使用してバックグラウンドで画面キャプチャを行うクライアント用の既存の (アプリ ストア以外の) アプリに取り組んでいます。SO には、テクニックの概要を示すいくつかのスレッドと、いくつかのオープン ソースのサンプル プロジェクトがあります。
繰り返しますが、これはクライアントが使用する内部アプリケーションです。アプリ ストアでのリリースを意図していないため、プライベート フレームワークを使用しているという事実は許容されます。
非常によく似た手法を使用する Github のサンプル プロジェクトを次に示します。
https://github.com/k06a/UIView-FastScreenshot
最新の iOS 9 ベータ版でクライアントのアプリを実行しようとしましたが、ライブラリ CoreSurface を読み込めないというエラーでクラッシュします。
CoreSurface
となったフレームワークの以前の名前であるドキュメントを見てきましたIOSurface
が、iOS 8 には実際に と呼ばれるプライベート フレームワークと と呼ばCoreSurface
れるプライベート フレームワークがあるようIOSurface
です。
iOS 9 でバックグラウンドからスクリーン キャプチャを実行できた人IOSurface
はいますか?
iOS 9 でこれを機能させる方法を教えてくれる人に報奨金を追加します (繰り返しますが、プライベート フレームワークは問題ありませんが、ジェイルブレイクされたデバイスでは実行できません)。
ios - IOSについて 面録り動画
解決する必要がある機能: バックグラウンド デスクトップ ビデオ録画 NSTimer サイクル スクリーンショット用の IOSurface 呼び出しを使用します,次のコード:</p>
成功をスクリーンショットできます。</p>
問題は次のとおりです。
- ただし、おそらく 1 分ほど実行すると、「メモリ警告を受信しました」というプロンプトが表示されます。</li>
- スライドスクリーン、スクリーン方式が遅くなる
または、どのような方法でデスクトップ ビデオをバックグラウンドで録画できますか?</p>
ios9 - iOS9 IOSurface 背景のスクリーンショット
問題が発生したときの最新の iOS9 スクリーンショット、iOS7 および iOS8 は正常に実行できます。</p>
私は iPad8.1.2 と iPhone6plus9.1 のテストを使用しています。以下は私のテストで見つかった問題です。</p>
2015-11-07 14:07:22.849 ScreenRecorder[3292:140825]
私のデバイス情報:[iPhone OS,8.1.2,12B440,iPad4,1,prod]
(lldb) po framebufferService
8967
(lldb) po 接続
IOMobileFramebuffer 0x138031800 [0x1946aec80]
(lldb) po ScreenSurface
IOSurface 0x137f00008 [0x1703816c0]
(lldb) ポアシード
728041
(lldb) po 幅
1536
(lldb) po 身長
2048
2015-11-07 14:07:22.849 ScreenRecorder[3292:140825]
私の端末情報:[iPhone OS,9.1,13B143,iPhone7,1,prod]
(lldb) po framebufferService
24599
(lldb) po 接続
IOMobileFramebuffer 0x138031800 [0x1946aec80]
(lldb) po ScreenSurface
なし
(lldb) ポアシード
0
(lldb) po 幅
なし
(lldb) po 身長
なし
iOS9 のスクリーンショットが黒い画面になる問題が発生しました。</p>
どこが間違っているのか誰が教えてくれますか、ありがとう!</p>
ios - iOS9 フレームワークが見つかりません IOSurface
を使用するIOSurface.framework
と、次の問題が発生します。
IOSurface がプライベート フレームワークであることは知っていますが、アプリを iPhone にインストールしたいだけなのですが、この問題を解決するにはどうすればよいですか?
opengl - あるターゲットから別のターゲットに OpenGL テクスチャをコピーする
GL_TEXTURE_RECTANGLE_ARB に限定され、ミップマッピングをサポートしない IOSurface でサポートされたテクスチャがあります。このテクスチャを GL_TEXTURE_2D にバインドされた別のテクスチャにコピーし、代わりにそのテクスチャでミップマッピングを実行しようとしています。しかし、テクスチャのコピーに問題があります。別のGL_TEXTURE_RECTANGLE_ARBにコピーするだけでは機能しません。これが私のコードです:
macos - IOSurface に裏打ちされたテクスチャを GL_TEXTURE_2D に変換します
IOSurface
ミップマッピングでテクスチャをレンダリングしたい。
私は次のようなものOpenGL
からテクスチャを生成しています:IOSurface
そして、単純なフラグメント シェーダーでレンダリングします。
これはうまくいきます。しかし残念なことに、テクスチャはミップマップされておらず、小さいサイズで表示すると非常に粗く/ピクセル化されています。さらに調査すると、IOSurface
バッキングされたテクスチャはGL_TEXTURE_RECTANGLE_ARB
ターゲットに限定されているだけでなく、ミップマッピングもサポートしていないようです。
わかった。したがって、ここでの私の最良の代替手段は次のようです。
GL_TEXTURE_RECTANGLE_ARB
テクスチャをテクスチャにGL_TEXTURE_2D
コピーする- この新しいテクスチャのミップマップを生成します
OpenGL 4.3 をサポートしていない Mac で開発しているため、glCopyImageSubData
ここでは便利な機能を使用できないことに注意してください。代わりに、この回答に基づいてステップ 1 のアプローチを作成しています: How to copy texture1 to texture2 effective?
私の完全なコードは次のようになります。
そして、シェーダーをサポートするように変更しましたGL_TEXTURE_2D
:
そして、ここが私が立ち往生している場所です。画像はすべて黒で、なぜ機能しないのかわかりません。
私は次のようにピクセルデータを見てみました:
そして、それはすべてゼロです。私のアプローチに何か問題がありますか、それとも問題は特にバッキングされIOSurface
たテクスチャの処理に関連している可能性がありますか?