残念ながら、ビデオ フレームのレンダリングに使用される内部ビューは TextureView であるため、描画キャッシュを要求することはできません (TextureView は HardwareAccelerated です)。
さらに、ドキュメントでは次のように指定されています。
public final void draw (キャンバス キャンバス)
TextureView のサブクラスは、Canvas オブジェクトを使用して独自のレンダリングを行うことはできません。
したがって、あなたのdraw()
呼び出しは TextureView には影響しません。
内部 TextureView でメソッドを使用することもできますがgetBitmap()
、これが機能することは保証できません。
現時点では、Weemo SDK にはそのような機能はありませんが、これらのフレームをキャプチャするためのより便利な方法を提供できるよう調査中です。
また、お客様のユースケースをよりよく理解することも興味深いことです。たぶん、あなたが達成しようとしていることについてもう少し共有することができます. これは、お客様のニーズに最適な新しい SDK 機能を設計するのに役立ちます。
編集:
this への参照を取得するにTextureView
は、ビュー階層を参照するだけです。たとえば、これを行うことができます:
WeemoVideoInFrame videoFrame = getView().findViewById(R.id.video_frame);
findTextureView(videoFrame);
/* ... */
TextureView findTextureView(WeemoVideoInFrame frame) {
for (int index = 0; index < frame.getChildCount(); index++) {
View child = frame.getChildAt(index);
if(child instanceof TextureView) {
return (TextureView) child;
}
}
return null;
}
ただし、この動作は保証されていないことに注意してください。