У нас возникают странные проблемы с потоковой передачей определенных файлов в нашем приложении. После большого и большого количества испытаний мы сузили его до того, что кажется чем-то вроде проблемы между lighttpd и Droid, и это не только наше приложение, но и встроенный плеер.
Если вы указываете браузер Droid на http://stream29l.grooveshark.com/collinSong.mp3, он не работает. Тот же самый файл, размещенный на Apache в http://staging.api.grooveshark.com/collinSong.mp3, отлично воспроизводит потоки. Файлы идентичны. Оба URL работают на других телефонах с 1.5 и 1.6 и на эмуляторе под управлением 2.0.1.
URL-адрес lighttpd не работает при воспроизведении через Wi-Fi или 3G.
Я предполагаю, что на сетевом уровне происходит нечто странное, что Droid не терпит, но я в конце того, что я могу отладить. Есть идеи?
ОБНОВЛЕНИЕ: Я установил lighttpd на своем ноутбуке под управлением CentOS и настроил его для обслуживания тех же файлов (извините, недоступных для внешнего мира), и Droid может нормально их обслуживать. Это должно быть специфическая проблема конфигурации с нашим сервером или разница в версиях lighttpd. Прямо сейчас мой ноутбук работает на 1.4.22, а наш производственный сервер работает на 1.5.0. Наш производственный сервер также имеет следующий набор настроек, из-за которого у меня возникли проблемы с настройкой на моем ноутбуке (примечание: у меня могут отсутствовать модули и т. Д.):
server.max-fds = 7000
server.network-backend = "gthread-aio"
server.stat-cache-engine = "fam"
на сервере также установлены следующие дополнительные модули:
"mod_proxy_core",
"mod_proxy_backend_http",
"mod_proxy_backend_fastcgi",
Я попытаюсь привести модули и конфиги в соответствие на 100% и посмотреть, не вызовет ли это проблему завтра. Если нет, я попытаюсь обновить свой ноутбук до версии 1.5.0 и посмотреть, сможет ли это сделать.
А пока кто-нибудь знает о проблемах, связанных с вышеуказанными конфигами?
ОБНОВЛЕНИЕ 2:
Я обновил до 1.5.0 на своем ноутбуке, потоковое collinSong.mp3 все еще работало.
Добавление:
server.network-backend = "gthread-aio"
не нарушать потоковое.
Однако эта строка сделала:
server.stat-cache-engine = "fam"
Комментирование вышеприведенной строки приводит к тому, что потоковая передача с моего ноутбука работает, а его включение не работает. Я действительно попросил нашего администратора удалить эту строку из конфигурации и перезапустить ее (он сказал, что нам все равно не нужны эти настройки), но проблема сохраняется.
Затем я попытался оставить закомментированный stat-cache-engine на моем ноутбуке и добавить следующие строки:
"Mod_proxy_core",
"Mod_proxy_backend_http",
"Mod_proxy_backend_fastcgi"
Еще раз потоковая передача на моем ноутбуке прервалась после включения этих функций и работает, когда я их отключаю. К сожалению, они, по-видимому, необходимы для модели потоков, которую мы используем на сервере, поэтому я не могу поэкспериментировать с отключением их в работе. Я не знаю, дает ли это кому-нибудь какие-то подсказки, но это все, что у меня есть.
Я бы хотел связаться с разработчиком из Motorola, потому что это похоже на ошибку в платформе; отлично работает на других устройствах Android, ПК, iPhone, Blackberry и телефонах Nokia, но не на Droid.