問題タブ [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.

0 投票する
2 に答える
138 参照

android - 携帯電話のカメラを使用する

カメラを使用してデータを surfaceHolder に送信するアプリを作成しています。しかし、addCallBack() を呼び出すと、アプリがクラッシュします。コードは次のとおりです。

そして未実装のメソッド:


camHolder.addCallback(this);を呼び出すとアプリがクラッシュするのはなぜですか? ? 私のコードに他の問題はありますか?

0 投票する
2 に答える
11489 参照

android - 「surfaceCreated」内の「サーフェスがリリースされました」

これはよくある質問だと思いますが、このスタック トレースは別の何かが間違っていることを示しています。setDisplay(holder)内部で が呼び出されたにもかかわらず、surfaceCreatedまだ がスローされていることがわかりIllegalArgumentExceptionます。これもまれな例外ではありません。昨日は、約 3,000,000 回のクリップ ビューで約 125,000 回発生しました。mCurrentPlayerそれも正しく初期化されていることを保証できます。

作成されたサーフェス:

surfaceDestroy:

スタックトレース:

他に何が間違っている可能性があるかについてのアイデアはありますか? バックグラウンドスレッドで表面を破壊する可能性があり、メインスレッド(現在はによって占有されている)がブロックを終了するのをSurfaceHolder待ってから、メインスレッドで呼び出すことができます(ロックで修正できるとは思いません)?他の何か?surfaceCreatedsurfaceDestroyed

更新 - 少し掘り下げた後、「表面が解放されました」がスローされる原因がわかりました。

ここandroid_view_Surface_getSurfaceで見つけることができる参照:

これは、私の C++ 知識の欠如が痛いところです。サーフェスにロックしようとしているように見えます。それができない場合、返されるサーフェスは になりますnull。として返されるとnullIllegalArgumentExceptionスローされます。

0 投票する
2 に答える
4678 参照

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を使用しているときに同じことを経験しましたか? これに関するヘルプは大歓迎です。ありがとう!

0 投票する
1 に答える
5420 参照

android - surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS) は非推奨です

MediaRecorder を使用してビデオをキャプチャしています。コードの一部を以下に示します。

しかしsurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);、非推奨です。この方法以外に方法はありますか?すべてのバージョンでコードを実行したい。

0 投票する
1 に答える
5017 参照

java - カメラ、SurfaceView、SurfaceHolder から継続的に画像データを取得する

だから私は、このカメラのプレビューをとCameraで設定しました。また、カメラ画像の修正版を配置する場所もあり、これを毎秒 1 回更新したいと考えています。SurfaceViewSurfaceHolderImageView

「res」から画像を読み込むと、すべてのコードの準備が整い、すでに機能していますが、カメラから画像データを読み取るのに非常に苦労しています。

私はすでに次のことを試しました:

  1. intentforを作成し、小さなサムネイルMediaStore.ACTION_IMAGE_CAPTUREの取得を開始します (実際には十分です) 。問題は、これによりカメラ アプリが開き、「手動で」写真を撮る必要があることですonActivityResult(Bitmap)data.getExtras().get("data")

  2. を作成しCamera.PreviewCallback、 を取得しYuvImage、 を使用してイメージに変換しYuvImage.compressToJpeg(...)ます。

    ここでの問題は、いつどこに Camera.setPreviewCallbackWithBuffer(PreviewCallback).

  3. PreviewHolderを使用してキャンバスにロックインし、lockCanvas()それをビットマップに変換しようとすることで、データを直接取得しようとし

    ます明らかに機能しません。

編集: これを機能させる最良の方法は何ですか? QR コード リーダーは、カメラから画像データを連続して読み取る必要がありますが、どのように機能するのですか?

0 投票する
1 に答える
2240 参照

android - PopupWindow 内で SurfaceView が機能しない

Samsung SPen のAirView機能にPopupWindow基づいてプレビューを表示します

しかし、問題は、SurfaceViewが作成されておらず、SurfaceHolder.Callbackメソッドが呼び出されていないことです。

サーフェスがまったく作成されていないため、ポップアップが表示されるとサーフェス領域が透明になります。

SurfaceView は作成されず、透過的です:

ここに画像の説明を入力

HoverPreview:

プレビューを表示するコード: