問題タブ [surfaceholder]
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.
android - 携帯電話のカメラを使用する
カメラを使用してデータを surfaceHolder に送信するアプリを作成しています。しかし、addCallBack() を呼び出すと、アプリがクラッシュします。コードは次のとおりです。
そして未実装のメソッド:
camHolder.addCallback(this);を呼び出すとアプリがクラッシュするのはなぜですか? ? 私のコードに他の問題はありますか?
android - 「surfaceCreated」内の「サーフェスがリリースされました」
これはよくある質問だと思いますが、このスタック トレースは別の何かが間違っていることを示しています。setDisplay(holder)
内部で が呼び出されたにもかかわらず、surfaceCreated
まだ がスローされていることがわかりIllegalArgumentException
ます。これもまれな例外ではありません。昨日は、約 3,000,000 回のクリップ ビューで約 125,000 回発生しました。mCurrentPlayer
それも正しく初期化されていることを保証できます。
作成されたサーフェス:
surfaceDestroy:
スタックトレース:
他に何が間違っている可能性があるかについてのアイデアはありますか? バックグラウンドスレッドで表面を破壊する可能性があり、メインスレッド(現在はによって占有されている)がブロックを終了するのをSurfaceHolder
待ってから、メインスレッドで呼び出すことができます(ロックで修正できるとは思いません)?他の何か?surfaceCreated
surfaceDestroyed
更新 - 少し掘り下げた後、「表面が解放されました」がスローされる原因がわかりました。
ここandroid_view_Surface_getSurface
で見つけることができる参照:
これは、私の C++ 知識の欠如が痛いところです。サーフェスにロックしようとしているように見えます。それができない場合、返されるサーフェスは になりますnull
。として返されるとnull
、IllegalArgumentException
スローされます。
android - Samsung Galaxy S4 ストリーミング ビデオの再生方向の問題
Samsung Galaxy S4 でビデオを再生すると、ビデオは向きのメタデータを認識しません。常にランドスケープで再生されます。
また、アプリはビデオを録画し、ストリーミング中に他のすべてのデバイスで正しく再生します。S4 は、ビデオがデバイスに保存されている場合にのみ正常に再生しますが、ストリーミングには機能しません。
VideoView ではなく Fragment で MediaPlayer と SurfaceView を使用する。
Air View、Air Gesture、Smart Stay、Smart Scroll、Auto Rotate を無効にしようとしましたが、うまくいきませんでした。
また、レイアウト内の要素を手動で回転させるためのビデオと一緒に向きのヒントも保存しましたが、lockCanvas を使用して回転したときの SurfaceView は機能せず、親要素を回転すると黒くなり、オーディオのみが再生されます。
このバグを修正するための提案はありますか? S4を使用しているときに同じことを経験しましたか? これに関するヘルプは大歓迎です。ありがとう!
android - surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) は非推奨です
MediaRecorder を使用してビデオをキャプチャしています。コードの一部を以下に示します。
しかしsurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
、非推奨です。この方法以外に方法はありますか?すべてのバージョンでコードを実行したい。
java - カメラ、SurfaceView、SurfaceHolder から継続的に画像データを取得する
だから私は、このカメラのプレビューをとCamera
で設定しました。また、カメラ画像の修正版を配置する場所もあり、これを毎秒 1 回更新したいと考えています。SurfaceView
SurfaceHolder
ImageView
「res」から画像を読み込むと、すべてのコードの準備が整い、すでに機能していますが、カメラから画像データを読み取るのに非常に苦労しています。
私はすでに次のことを試しました:
intent
forを作成し、小さなサムネイルMediaStore.ACTION_IMAGE_CAPTURE
の取得を開始します (実際には十分です) 。問題は、これによりカメラ アプリが開き、「手動で」写真を撮る必要があることです。onActivityResult
(Bitmap)data.getExtras().get("data")
を作成し
Camera.PreviewCallback
、 を取得しYuvImage
、 を使用してイメージに変換しYuvImage.compressToJpeg(...)
ます。
ここでの問題は、いつどこにCamera.setPreviewCallbackWithBuffer(PreviewCallback)
.PreviewHolder
を使用してキャンバスにロックインし、lockCanvas()
それをビットマップに変換しようとすることで、データを直接取得しようとし
ます明らかに機能しません。
編集: これを機能させる最良の方法は何ですか? QR コード リーダーは、カメラから画像データを連続して読み取る必要がありますが、どのように機能するのですか?
android - PopupWindow 内で SurfaceView が機能しない
Samsung SPen のAirView機能にPopupWindow
基づいてプレビューを表示します
しかし、問題は、SurfaceView
が作成されておらず、SurfaceHolder.Callback
メソッドが呼び出されていないことです。
サーフェスがまったく作成されていないため、ポップアップが表示されるとサーフェス領域が透明になります。
SurfaceView
は作成されず、透過的です:
HoverPreview
:
プレビューを表示するコード: