Ошибка приведения видео DLNA/UPNP в DMR

Я разработчик iOS. Сейчас я занимаюсь разработкой приложения DLNA/UPNP для iOS. Моя цель - напрямую передавать видео с iPhone на Samsung Smart TV без какого-либо промежуточного программного обеспечения. Поэтому я использую библиотеку upnpx для этого. Каркас ниже. iPhone скачать видеолинк с сервера. И прямо снимали видео на ТВ. Конечно, сервер не DMS. Здесь моя проблема в том, что некоторые видео хорошо воспроизводятся по телевизору. Но некоторые видео не воспроизводятся по телевизору. Только аудио воспроизводится. Что мне не хватает при реализации приложения? Я надеюсь получить лучшее решение от всех. Спасибо.

Вот как я выбрал DMR:

MediaRenderer1Device *render = (MediaRenderer1Device*)device;
        [[PlayBack GetInstance] setRenderer:render];
        [[PlayBack GetInstance] Play:0];

/ * выбранный DMR urn 'urn:schemas-upnp-org: устройство: MediaRenderer: 1' * /

//play func

-(int)Play:(NSInteger)position {

      if([[renderer  avTransportService]isObserver:BasicUPnPServiceObserver*)self]== NO){
            [[renderer avTransportService] addObserver:(BasicUPnPServiceObserver*)self];
        }  
        NSString *uri = @"http://parstvco.files.wordpress.com/2015/11/dandoon-tala-10.mp4"; // This uri will be played on TV(DMR)

        NSString *iid = @"0";

        [[renderer avTransport] SetPlayModeWithInstanceID:iid NewPlayMode:@"NORMAL"];

        [[renderer avTransport] SetAVTransportURIWithInstanceID:iid CurrentURI:uri      CurrentURIMetaData:@"video/mp4"];


        [[renderer avTransport] PlayWithInstanceID:iid Speed:@"1"];

}

// журнал результатов

2016-06-11 09:33:16.120 upnpxdemo[841:8340] Ошибка (SoapAction): получен ответ не 200: 500. Данные:

<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>UPnPError</faultstring><detail><u:UPnPError xmlns:u="urn:schemas-upnp-org:control-1-0"><u:errorCode>701</u:errorCode><u:errorDescription>Transition not available</u:errorDescription></u:UPnPError></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>

1 ответ

Сообщение об ошибке вряд ли будет связано с тем, что некоторые видео не воспроизводятся (я подозреваю, что это просто несовместимость кодека), но для сообщения об ошибке указано следующее:

Служба AVTransport может не работать с 701 в некоторых случаях, если она не может выполнить переход состояния, о котором вы просили (например, если вы пытаетесь Pause() в то время как STOPPED). В документе с описанием услуги AVTransport перечислены все случаи, когда 701 может произойти, но, конечно, ваш Samsung может вернуть его и в совершенно других ситуациях:/

Я не вижу, что в вашем коде может вызвать что-то, описанное выше, но я предлагаю попытаться отслеживать TransportState службы непосредственно перед вызовом, который завершается с ошибкой 701: я предполагаю, что служба по-прежнему, например, TRANSITIONING и не будет принимать команды, пока не STOPPED или же PLAYING,

Другие вопросы по тегам