プロジェクトに多くの投稿を行い、libmms ライブラリをインストールしましたが、プロジェクトをコンパイルするとエラーが発生します。
libmms ライブラリを iphone プロジェクトにインストールする手順はありますか? libmms 関数を呼び出すサンプル コードはありますか?
ありがとう
Libmms ライブラリを提供する xCode を使用して、Libmms ソース コードをコンパイルする必要があります。このためには、iPhone 用に修正済みのソース コードが必要です。
Libmms はオープン ソースであるため、Libmms を含むプロジェクトがインターネット上にいくつかあり、コンパイルするこの iPhone バージョンが提供されます。Libmms を含む xCode プロジェクトがあるため、WunderRadio を参照してください。
最初に Libmms をコンパイルしようとしたときに問題を引き起こした非常に重要なことの 1 つは、ヘッダーをパスまたは他の場所に配置し、このパスを xCode でポイントすることです。xCode 4 を使用している場合は、TargetsをクリックしてBuild Settingsを選択し、 Header Search Pathsを検索します。Recursiveオプションをチェックすることを忘れないでください。
iPhone 上で Libmms を実行するには、iPhone シミュレータ用に 1 つの製品バージョンをコンパイルし、armv6/armv7 用に別の製品バージョンをコンパイルする必要があります。したがって、これは 2 段階のプロセスです。シミュレーター用にビルドし、完了したら iPhone 用にビルドします。
Buildだけですべてをセットアップしたら、プロジェクトを実行しないでください。製品は 2 つのコンパイル済みライブラリになります。それぞれを右クリックして、 Show in Finderを選択するだけで、xCode がそれらをどこに配置したかがわかります。これら 2 つのライブラリを xCode プロジェクトに配置する必要があります。繰り返しますが、プロジェクトに Libmm のヘッダー パスを含めることを忘れないでください。そうしないと、[実行] を選択したときに、Libmm のヘッダーが見つからないため、コンパイラがエラーを出します。
それが役立つことを願っています。
接続を確立するには、アプリケーション ヘッダー ファイルに#include "mmsx.h"を含める必要があります。次のように、.m ファイルで関数を使用する必要があります。
mmsx_connect へのポインタを次のパラメータとともに使用します: mmsx_connect (mms_io_t *io, void *data, const char *url,const char *host, const char * uri, const char *query,int port,char *scheme,int bandwidth)
ファイルを読み取るには、mmsx_read (mms_io_t *io, mmsx_t *instance, char *data, int len); を使用します。
接続を閉じるには、mmsx_close (mmsx_t *instance) を使用します。
さらに関数が必要な場合は、mmsx.h を参照してください。関数の使用方法は一目瞭然です。
オーディオ ストリームのデコードに FFmpeg を使用すると思います。しかし、mms ストリームへの接続に FFmpeg も使用できることをご存知でしたか?
const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);
わずか 1 行のコードで mms ストリームに接続できます。tcp 経由の接続が失敗した場合は、ポート 80 への接続を試みる mmsh:// スキームを試すこともできます。
接続したら、FFmpeg のav_read_frame関数を使用して、mms オーディオ パケットを読み取り、デコードのためにオーディオ パケットをavcodec_decode_audio3に渡します。