OSX に移植したい .NET アプリケーションがあります。これまで、WebCam の処理には DirectShow DLL を使用していました。Mono に Objective-C DLL を使用できますか? どのように?私はMacの初心者です。これに対する既存の (WebCam 処理) ソリューションはありますか? より良い解決策はありますか?
4 に答える
QTKit フレームワークを使用してこれを行う必要があります。特に、QTCaptureView を再利用可能な NSView として使用して、既存のウィンドウまたはアプリケーションに埋め込んで実際のビデオ キャプチャを行うことができます。
あなたの質問を見てから数分前に、MonoMac バインディングにキャプチャのサポートを追加したばかりなので、少し作業を行う必要があります。
手順:
ここで説明されているように、Mono、MonoDevelop、および MonoMac アドインをインストールします: http://mono-project.com/MonoMac
Github から MonoMac および MacCore の最新ソースをダウンロードします: http://github.com/mono/maccoreおよびhttp://github.com/mono/monomac
monomac/src ディレクトリに移動し、「make update」と入力して、MonoMac.dll を最新バージョンに更新します。
この時点で、他の NSView と同様に、MonoMac アプリケーションで QTCaptureView を使用できるはずです。Objective-C での API の使用を示すチュートリアルは次のとおりです。
C#で同等のバージョンを使用できます
受け入れられたコードをXCodeで試しましたが、Monodevelopに移植しようとすると、いくつかのクラスが欠落しています。QTCaputureSession、QTCaputreDeviceInput、CVimagebuffer。(申し訳ありませんが、以前のメッセージを編集できません。これは別のアカウントです。)
「Mono用のobject-c dll」の意味がわかりません。
あなたの絶対的な最善のアプローチは、対象とするプラットフォームを学び、ロジックと一般的なアーキテクチャのみを移植することです。
Mac OS X でカメラ、マイク、ライン入力などにアクセスするには、QTKit (Quicktime Kit) を使用します。Web カメラ ビューのセットアップ、ファイルへの記録、フレームのグラブなどは気が遠くなるほど簡単です。これは組み込みであり、開発者がこの種のことをほとんどドラッグ アンド ドロップできるように設計されています。
MonoMac は 1 つの代替手段にすぎません。Monobjc、CocoSharp、NObjective、MObjc / MCocoa、および ObjC# があります (どちらかを選択することはできません)。これらはすべて、Mono と Cocoa の間の「ブリッジ」です。つまり、Mono アプリケーションで Cocoa API を使用できます。しかし、API を直接使用したくありません。WebCam を処理するための機能を提供する、動的にリンクされたライブラリが必要なだけです (前述したように、これまでは Windows で実行していました)。つまり、Mono で QTKit のラッパーが必要です。
PS: object-c でアプリケーションを書き直した場合、それは数か月を意味し、アプリケーションが成長する将来の二重の作業になります。object-c は大好きですが、不必要な作業は嫌いです。