Как мне использовать libmms в моем проекте iphone? - PullRequest
0 голосов
/ 01 апреля 2011

Я прошел через много постов и установил библиотеку libmms в свой проект, но я получаю ошибки, когда я компилирую свой проект.

У кого-нибудь есть шаги по установке библиотеки libmms в проект iphone? У кого-нибудь есть пример кода для вызова функций libmms?

Спасибо

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Вам необходимо скомпилировать исходный код Libmms, используя xCode, который предоставит вам библиотеки Libmms.Для этого вам нужен исходный код, который уже был изменен для iPhone.

Поскольку Libmms является открытым исходным кодом, в Интернете есть несколько проектов, которые включают Libmms и предоставят вам эту версию для iPhone, которую вы скомпилируете.Вы можете взглянуть на WunderRadio, потому что у них есть проект xCode, который включает Libmms.

Одна очень важная вещь, которая доставляла мне проблемы, когда я впервые попробовал скомпилировать Libmms - это поместить заголовки в ваш путьв другом месте и укажите этот путь на xCode.Если вы используете xCode 4, просто нажмите Targets , выберите Build Settings и выполните поиск Пути поиска по заголовкам .И не забудьте проверить опцию Recursive .

Вам нужно будет скомпилировать одну версию продукта для симулятора iPhone и другую для armv6 / armv7, чтобы запускать Libmms на iPhone также,Итак, это двухэтапный процесс.Сборка для симулятора, а когда он закончится, сборка для iPhone.

Как только вы все настроите, просто Сборка , не Запуск проекта.Продуктами будут две скомпилированные библиотеки.Просто щелкните правой кнопкой мыши по каждому из них и выберите Показать в Finder , и вы узнаете, куда их поместил xCode.Эти две библиотеки вы должны будете поместить в свой проект xCode.И снова, не забудьте включить путь заголовков для Libmms в ваш проект, иначе, когда вы выберете Run, компилятор будет жаловаться, потому что он не может найти заголовки для Libmms.

Надеюсь, это поможет.

Чтобы установить соединение, вы должны # включить «mmsx.h» в заголовочный файл приложения.Вам необходимо использовать функции в вашем файле .m, например:

Использовать указатель на mmsx_connect со следующими параметрами: mmsx_connect (mms_io_t * io, void * data, const char * url, const char * host, const char * uri, const char * запрос, int port, схема char *, int bandwidth)

Чтобы прочитать файл, используйте mmsx_read (mms_io_t * io, экземпляр mmsx_t *, char * data, int len);

Чтобы закрыть соединение, используйте mmsx_close (mmsx_t * instance).

А если вам нужно больше функций, просто взгляните на mmsx.h и там есть объяснения о том, какиспользуйте их.

0 голосов
/ 20 ноября 2011

Полагаю, вы будете использовать FFmpeg для декодирования аудиопотоков.Но знаете ли вы, что вы также можете использовать FFmpeg для подключения к MMS-потокам?

const char *url = "mmst://somemmsurlhere.com";
avformat_open_input(formatCtx, url, NULL, NULL);

С помощью только одной строки кода вы можете подключиться к MMS-потокам.Если соединение через tcp не удается, вы также можете попробовать схему mmsh: //, которая попытается подключиться к порту 80.

После подключения вы можете использовать функцию av_read_frame FFmpegкоторый будет читать аудиопакеты mms и передавать аудиопакеты в avcodec_decode_audio3 для декодирования.

...