2016-04-17 9 views
2

Существует ошибка Chrome от версии 49Как предотвратить режим аудио вспышки для хрома с JavaScript

Это затрагивает мое приложение, которое основано на этом API http://soundcloud.lrdiv.co/ (GitHub репо https://github.com/lrdiv/ember-soundcloud)

В основном проблема заключается в том, что Soundcloud Api использует soundmanager2 в качестве основы для обработки аудиопотока, который сам имеет 2 режима flash и html5. Проблема в том, что если флеш-плеер доступен, он попытается использовать его и провалится, а если он недоступен, он просто будет использовать html5 и сразу работать.

Доказательство: если вы идете сюда chrome: // плагины/ и деактивировать флеш-плеер, аудио-поток снова будет работать в Chrome.

В этом обсуждении https://github.com/soundcloud/soundcloud-javascript/issues/39#issuecomment-206726301 одним возможным временным взломом является обнаружение хрома и возврат false для воспроизведения в режиме вспышки.

function d() { 
     var t, e, n, i; 
     if ("undefined" != typeof window.ActiveXObject) 
      try { 
       i = new window.ActiveXObject("ShockwaveFlash.ShockwaveFlash"), 
       i && (t = i.GetVariable("$version")) 
      } catch (r) {} 
     else 
      window.navigator && window.navigator.plugins && window.navigator.plugins.length > 0 && (n = "application/x-shockwave-flash", 
      e = window.navigator.mimeTypes, 
      e && e[n] && e[n].enabledPlugin && e[n].enabledPlugin.description && (t = e[n].enabledPlugin.description)); 
     // @todo, chrome flash player bug, if under chrome, dont return true here, more info: 
     // https://github.com/soundcloud/soundcloud-javascript/issues/39 
     **if (!!window.chrome) { 
      return false 
     }** 
     return t 

    } 

Я хотел бы сделать то же самое в моем sdk.js, но не очень понятно, в какой строку у меня есть я должен предотвратить вспышку потоковую для хрома

+0

Почему бы просто не использовать официальный SoundCloud API? Тогда вы можете сами выбрать, используется ли Flash-плагин или HTML5 ... –

+0

Soundcloud Api использует soundmanager2 в качестве основы для обработки аудиопотока – Koala7

+0

«... проблема в том, что Soundcloud Api использует soundmanager2», где упоминается в официальном API ?. Возможно, это было правдой несколько лет назад. Что такое Irdiv API, которого вы действительно не можете достичь с помощью официального официального SoundCloud API? Просто попробуйте на один день. Это просто. –

ответ

1

В моем sdk.js я должен был добавить

soundManager.preferFlash = false; 

не использовать Flash-плагин, как аудио-плеер