Потоковое видео воспроизводится на устройствах iOS, но не на Android

Мое приложение использовалось для воспроизведения потокового видео HLS (m3u8) как на iOS, так и на Android, но недавно на нашем сервере что-то изменилось (я не знаю что), что остановило Android от воспроизведения потока. Это все тот же поток, поэтому я понятия не имею, что могло измениться. Мы ввели перенаправления на сервере, но это только один, поэтому я не уверен, в чем дело. Кто-нибудь из вас знает, где мне следует искать дальше, чтобы найти эту проблему?

Примечание: в приложении я просматриваю этот текстовый файл (это был не мой выбор) и анализирую URL-адрес m3u8 для видеопотока.

Дополнительное примечание: если вы вставляете URL-адрес напрямую в веб-браузер Android, он работает нормально.

Вот несколько заголовков для интересующихся:

Remote Address:x.x.x.x:80
Request URL:http://xxxxx/videofeed.txt
Request Method:GET
Status Code:304 NOT MODIFIED
Request Headersview source
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Cookie:__atuvc=1%7C28%2C1%7C29; PRUM_EPISODES=s=1405606768407&r=http%3A//xxxxx/Unsubscribe.aspx%3Femail%[email protected]%26list%3Djom; jom-bigip=369103532.20480.0000; __utma=191791409.1763237517.1404757015.1408809372.1408840784.4; __utmc=191791409; __utmz=191791409.1404757015.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host:www.joelosteen.com
If-Modified-Since:Sun, 24 Aug 2014 00:46:51 GMT
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36
Response Headersview source
Cache-Control:private,max-age=0
Connection:keep-alive
Content-Length:0
Date:Tue, 02 Sep 2014 18:28:45 GMT
Expires:Mon, 18 Aug 2014 18:28:46 GMT
MicrosoftSharePointTeamServices:14.0.0.4762
Public-Extension:http://schemas.microsoft.com/repl-2
Server:Microsoft-IIS/7.5
SPRequestGuid:ddfb9b7b-5cb1-4644-88fa-52d776848b64
X-FRAME-OPTIONS:SAMEORIGIN
X-Powered-By:ASP.NET
X-SharePointHealthScore:0

Вот код, который я использую для воспроизведения видео на Android:

Intent intent = new Intent(context, VideoPlayerActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
Bundle bundle = new Bundle();
bundle.putString(VideoPlayerActivity.KEY_URL, url);
intent.putExtras(bundle);
context.startActivity(intent);

person Jacksonkr    schedule 02.09.2014    source источник


Ответы (1)


Если вы используете WebView, попробуйте изменить User-agent в своем приложении:

    WebSettings webSettings = webviewHTML.getSettings();
    webSettings.setUserAgentString( "Android");
    webSettings.setUserAgentString( "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.4) Gecko/20100101 Firefox/4.0"); 

или аналогичный (как в вашем приложении для iOS).

person Tapa Save    schedule 02.09.2014
comment
Вот и вся хитрость: приложение уже есть в Play Store и БЫЛО работало. Теперь это не так, и поскольку приложение уже существует, я как бы застрял. Я везде искал ответ, но пока ничего не нашел. - person Jacksonkr; 02.09.2014
comment
ИМХО, может быть сервер парсинг юзерагента и бан использовать юзерагент андроида по умолчанию. Попробуйте реализовать этот код в локальном приложении (не в Play Store), и если этот код будет работать нормально, то проблемы на стороне сервера. - person Tapa Save; 02.09.2014
comment
Я не знаю, почему это не пришло мне в голову, но это не в веб-просмотре, я отправлю дополнительные детали кода к вопросу. - person Jacksonkr; 03.09.2014