私はGstreamerのサイト作業からすべてのチュートリアルを作成しましたが、非常に難しかったです。他の人を助けるために私はそれを文書化しました。ここではlinux(ubuntu)のチュートリアルですが、質問がある場合は窓でもうまくいくかもしれません:)...私はAndroidスタジオで実行できるようにgitlabからプロジェクトをリンクします:
(チュートリアル 申し訳ありませんが、あなたが持っている:プロジェクトにはGStreamerを理解し、統合するための最良の方法は、このサイトでチュートリアルをやっているのAndroidメーカー
でライブラリを使用した5) https://gitlab.com/eduardoprado/gstreamer-tutorial5.git
(チュートリアル2)https://gitlab.com/eduardoprado/gstreamer-tutorial2.git
あなた自身でリンクを見つけるために、私は直接リンクを投稿する評判がありません
しかしこれらのチュートリアルは古く、Androidのメーカーと連携するためには、Eclipseで動作するように作られたがする必要がある:
1.インポートのAndroid Studioのインポート]オプションを使用してチュートリアル。
2. NDKを使用するようにAndroidスタジオを設定します。
3. "Android.mk"ファイル内に変数を設定します。
4. Gradleを設定すると、一部のアーキテクチャのみがコンパイルされます。
5. Gstreamerクラスを正しいパスにコピーします。
6. Androidスタジオから「インスタント実行」を無効にします。
:これらの各命令は、次のセクションで説明する
7.修正「リンカー金引数」(編集のみ2017年11月28日、Windowsユーザーを作った)
(編集は2017年10月27日を作りました)アンドロイドStudioのインポートオプション
のAndroid Studioを使用して
1.インポートチュートリアルは、別のIDEからプロジェクトをインポートするオプションがあります。 EclipseにGstreamerのプロジェクトをインポートするには、次の手順に従います。
1. gitからすべてのチュートリアルをダウンロードします。
2. Android Studioで、[ファイル] - > [新規プロジェクトをインポート]に移動します。
3.新しいブラウザのファイル画面で、 "gst-docs"に移動して、希望のプロジェクト(私の場合はチュートリアル5) "android-tutorial-5"を選択し、 "OK"を押します。NDK
を使用するようにAndroidのメーカーを設定し
2.今、プロジェクトがインポートされたこと、プロジェクトがNDKフレームワークを使用しているAndroidのメーカーに通知するために必要とされています。したがって、Gradleはすべての依存関係をインポートして処理できます。右「のGradleとリンクC++プロジェクト」
で、左側のナビゲーションタブで「アプリ」で
2.をクリックし
1.: は、我々は(すでにチュートリアルフォルダ内の)ファイルAndroid.mkをリンクする必要があり、これを行うために、新しいウィンドウで 3:
- 変更 "「...」で「NDKビルド」に「CMakeの」から
- をクリックし、「システムの構築」とAndroid.mkの場所を参照/AndroidStudioProjects/android-studio-5/app/src/jni/Android.mk "
- ヒットOK今外部ファイルは、プロジェクトの左側のタブに表示されますビルドし
。いくつかのエラーも表示されますが、それは正常であり、次のセクションで修正されます。
「Android.mk」ファイル内の変数を設定し 3.
「Android.mkは」GStreamerのが抽出された場所へのパスを見つけることができませんので、最後のセクションのエラーが発生します。したがって、GSTREAMER_ROOT_ANDROIDをGStreamerが抽出されたパスに設定してみましょう。 これを達成するには
1.左側のタブを参照して、[外部ビルドファイル]を展開します。
2. Android.mkをダブルクリックしてファイルを開きます。ライン10において
3、タイプ、 "$(BUILD_SHARED_LIBRARY)を含む" 下:
- "GSTREAMER_ROOT_ANDROID:= パス"
- NO引用符
- パスは、(明らかに)GStreamerのパスであります抽出された。
Gradleが同期し、エラー "*** Target arch ABI not supported:mips。Stop"が表示されます。
4.設定Gradleのグレードが異なるアーキテクチャ用にビルドしようとしますが、それはMIPSに構築するためのファイルを見つけることができませんので
最後のセクションでエラーが発生した場合にのみ、いくつかのアーキテクチャをコンパイル。この問題を解決するために、MIPSを除いて構築するアーキテクチャを指定します。
1.左のブラウザタブで、[スクリプトの展開]を展開します。
2. "build.gradle(Module:app)"をダブルクリックしてください
3。"moduleNameの" タイプ下の行に:
(チュートリアル5を実行する)
- abiFilters 'のx86'、 'armeabi'、 'armeabi-v7a'、 'arm64-v8a'
(チュートリアル2を実行する)
- 64ビットの64ビットデバイスでは、ライブストリーミングが表示されません。これを解決するには、次のようにします。あまりにarm64-v8a」)正しいpまで
5.コピーGStreamerのクラスath。
最後に必要な設定は、Mainクラスのパッケージのインポートに関するものです。
エラーにはGStreamerのクラスは「.INIT」機能を取得することがないために発生する上記示しました。あなたはGStreamerのを抽出したファイルに、お使いのシステムからのファイルマネージャを使用して、
- ブラウズ:これを解決するために、我々は、それが指定されたパスに抽出し、過去されたファイルからクラスのGStreamerをコピーする必要があります。
- 抽出されたファイルから、GStreamerクラスの場所を参照します。これは/arm/share/gst-android/ndk-build/GStreamer.javaにあります コピーGStreamer.java
- Androidスタジオに戻り、メインクラスがアクセスしようとしているインポートパスを/左側のブラウザタブにapp/javaと入力します。したがって、上記の画像に、我々はそれにGStreamer.javaをパスorg.freedesktop.gstreamerを作成し、ファイルを貼り付ける必要があります。javaフォルダ
- 新規作成>パッケージ
- タイプorg.freedesktopで
- 右クリック.gstreamer
- org.freedesktop.gstreamerを右クリックして貼り付け 5.インポートエラーが解決されましたが、新しいクラスにエラーがあります。それらを解決するには、コピーしたクラス「@」とその間にあるすべてのものを消去するだけです。 Androidのメーカーから
6.無効 "Instanteファイル名を指定して実行"。
Android Studioのこの機能は、プロジェクトを実行しようとすると問題を引き起こす可能性があるので、無効にすることをお勧めします。 "Instanteファイル名を指定して実行" を無効に
:
1. Androidのスタジオで "ファイル" に行く - > "設定..."(Ctrlキー+ Altキー+ S)
2 "展開を実行を構築します" - > "インスタントファイル名を指定して実行」
3.チェックを外し 『が展開上のホットスワップコード/リソースの変更への即時実行(デフォルトは有効)』
4.ヒットを 『有効
7』適用。修正「リンカー金引数」(Windowsユーザーのみ)
Windowsにしようとするときは、エラーを取得します:
Error:error: invalid linker name in argument '-fuse-ld=gold'
はそれを修正する:
1. [Android NDK Linker (GStreamer) - invalid linker name -fuse-ld=gold
2にアントワーヌをフォローしますZambelliの回答指示。
私の答えが助けられたら、それを受け入れてください。ありがとうございました –