Проблема iOS Safari со звуком с сервераIOS

Программируем под IOS
Ответить
Anonymous
 Проблема iOS Safari со звуком с сервера

Сообщение Anonymous »

Итак, сейчас я работаю над проектом и столкнулся со странной проблемой в версии Safari для iOS, связанной с воспроизведением аудиофайла с сервера.

В настоящее время я столкнулся со следующей проблемой:
  • Человек заходит на страница со стандартным аудиотегом HTML5 и прямой ссылкой на аудиофайл для загрузки.
  • Человек пытается прослушать аудио с помощью аудиотега, контент воспроизводится в течение x минут, обрезается, а затем повторяется (количество x минут НЕ является продолжительностью записи и не является
  • Человек пробует прямую ссылку на запись, а не загружает запись, Safari, похоже, переходит на новую страницу и оборачивает URL-адрес загрузки в элемент видео, и та же проблема, что и происходит шаг 2.
Теперь аудиофайл передается через Java-скриптлет, который обслуживает файл с помощью следующего фрагмента кода:< /p>

Код: Выделить всё

String fn = saveTo + file_name;
f = new File(fn);

String fname = f.getName();
String contentType = "audio/wav";
if(fname.endsWith("mp3")){
contentType = "audio/mp3";
}

response.setContentType(contentType);
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Content-disposition", "attachment;filename="+f.getName());
response.setHeader("Content-Length", ""+f.length());

FileInputStream fin = null;

try{
fin = new FileInputStream(f.getCanonicalFile());

byte[] data = new byte[1024];
int x = 0;

while((x = fin.read(data, 0, 1024))>=0){
response.getOutputStream().write(data, 0, x);
Thread.sleep(1);
}
} finally {
if(fin != null) {
try{
fin.close();
}catch(Exception ex){}
}
}
Теперь я знаю, что код не самый лучший, это не мой код, и мы, очевидно, работаем над предположением, что файл найден .

Я обнаружил, что при отладке на iPhone в режиме отладки на Mac код возврата не отображается. Он не показывает заголовков ответов, но очевидно, что он что-то получает. Кажется, журнал сервера считает, что он возвращает статус 200, это отображается в Chrome и Firefox.

Похоже, что приведенный выше код отлично работает с Chrome и Firefox, но не с Safari. .

Единственное, что я предполагаю, это как-то связано с тем, как файл передается в выходной поток, что не нравится Safari, или, может быть, он получает запутался и должен иметь другой код состояния. Я ломаю голову над этим уже несколько дней и читаю как можно больше о Safari, хотя большая часть документации, которую я нахожу, посвящена «уникальной» реализации веб-аудио и использованию один канал, который, похоже, не имеет к этому никакого отношения.

Будем благодарны за любую помощь.

Подробнее здесь: https://stackoverflow.com/questions/341 ... rom-server
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»