0

問題の概要
HoloLens と Android デバイス間の接続を確立しようとしていますが、これは MRTK のベータ版で散発的に機能していました。ただし、MRTK RC1 (Also Refresh) に移行してから、QR スキャンに関する問題が発生しました。接続を押すと、2 つのデバイスはお互いを見つけたように見えますが、HoloLens1 の着用者が QR コードを直接見ても何も起こりません。(白い点と「位置マーカー...」というテキストが表示されています)

背景の要約
1. セットアップ:

  • 動作する MRTK RC1 Refresh を実装しました
  • Feature-SpectatorView を個別に複製し、"MixedRealityToolkit.Extensions" フォルダーのみを MRTK プロジェクトにコピーします。
  • 「Spectator View - HoloLens」プレハブがシーンに追加されました。
  • 最初に PlatformSwitcher で "HoloLens" を押し、HoloLens1 用にビルドしてから、"Android" に切り替えて、プロジェクトを Android Studio にエクスポートします。
  • Android Studio からの .apk のビルド

(opencv バイナリはベータ版からダウンロードして実装されていますが、前回動作したときから変更していません。)

2. 手順:
HoloLens で [接続] ボタンを押すと、「マーカーの位置を特定しています...」という白いテキストが表示されます。

Android フォンが接続を押すと、「ユーザーを待機中」になり、HoloLens が接続されるとすぐに、HoloLens から読み取れる QR コードに切り替わります。

QR コードを直接見ても、新しいことは何も起こらず、接続はそれ以上確立されません。

Player Settings/Capabilities で何かがチェックされていないかどうかを確認しましたが、原因が何であるかを見つけることができないようです. このプロセスで何かを忘れましたか?

4

1 に答える 1

0

この問題の原因となっている可能性のあることがいくつかあります。

Android デバイスにマーカーが表示されている場合、これは 2 つのデバイスがネットワーク接続を確立し、相互に通信していることを意味します。通常、スペクテイター ビューを実行するときは、次の機能を有効にします: パッケージ内の「インターネット (クライアントとサーバー)、インターネット (クライアント)、マイク、画像ライブラリ、プライベート ネットワーク (クライアントとサーバー)、空間認識、ビデオ ライブラリ、ウェブカメラ」ビジュアル スタジオの .appxmanifest。スペクテイター ビューの Unity プラットフォーム スイッチャーで "HoloLens" を押すと、通常はこれらの機能が有効になりますが、Unity の後続のビルドで、Visual Studio プロジェクトで package.appxmanifest が正しく更新されないことがあります。これを修正するには、ビジュアル スタジオ ディレクトリを削除し、ビジュアル スタジオ プロジェクトを unity で再構築します。

これらの機能が package.appxmanifest でチェックされている場合は、最初にアプリケーションを実行したときに機能要求を拒否した可能性があります。HoloLens で [設定] -> [プライバシー] -> [カメラ] を開くと、デプロイされた spectator ビュー アプリケーションにカメラ アクセスが許可されているかどうかを確認できます。無効になっている場合は、ここでカメラ機能を有効にできるはずです。

MixedRealityToolkit と MixedRealityToolkit-Unity スペクテーター ビュー ロジックの両方に変更が加えられているため、これらの項目を異なる時点で複製すると、関数が解決されなくなる可能性があります (将来、このコードを同じリポジトリ/コミット履歴に統合したいと考えています)これが今後も起こらないようにするためです)。通常、Unity ログには、dll 機能が正しく解決されていない場合、SpectatorViewPlugin.dll の関数が見つからなかったことを示すエラーが記録されます。以前に機能していた場合、これはあなたが直面している問題ではないようです。しかし、その場合は、使用している機能/spectatorView コードと一致するように SpectatorViewPlugin.dll を再構築する必要があるかもしれません。

SpectatorViewPlugin.dll とその依存関係を新しい unity プロジェクトに最近コピーした場合、それらが Windows uwp unity プレーヤーで使用できるものとして登録されていない可能性があります。これらのバイナリが、資産フォルダー内の Plugins\WSA\x86 フォルダーにあることを確認してください。また、unity インスペクタで *.dll.meta 定義をチェックして、dll が unity wsa player/x86 ビルドで使用可能として宣言されていることを確認します。

于 2019-05-21T23:05:05.537 に答える