私はこのコードを持っています:
byte[] snap = ((VideoControl) player).getSnapshot("encoding=jpeg");
、カメラからスナップショットを取得します。さて、少し処理した後、正しい画像が生成されます。奇妙な点は、このコード行をデバッグすると、結果の画像が異なっていても、常に同じ値がフィールドに表示されることです。理由はありますか?
よろしくトリム
おそらく、ある程度の明確さが必要です...どの「フィールド」に「同じ値」があるのでしょうか。
そのバイト配列を取得して画像に変換するように聞こえます。次に、getSnapshotを再度呼び出すと、同じバイト配列を取得しますが、画像は異なりますか?
おそらくgetSnapshot(null)を試してください。
何かのようなもの:
byte[] data = null;
try {
data = video.getSnapshot(null);
} catch (MediaException ex) {
ex.printStackTrace();
}
if(data != null)
{
img = Image.createImage(data, 0, data.length);
}
どのように「デバッグ」していますか?エミュレータ?デバイス上?どのデバイスですか?
上記のコードは、K800iで機能します。
getSnapshot()がVideoControlを返しますか?それを再確認してください。
広範な検索の結果、私が間違っていることがわかりました。見当違いの質問をお詫び申し上げます。ただし、 encoding=jpeg を使用すると、これらの配列は実際にはごく一部だけ異なりますが、別のエンコーディングでは大幅に異なります。繰り返しますが、最初に難しい方法で確認しなかったため、この質問で申し訳ありません。