ice:outputMedia не перерисовывается в Firefox и IExplorer

Мне нужно воспроизвести MP3 с URL-адреса. Итак, на моей странице используйте это:

<ice:outputMedia binding="#{boardBean.opMedia}" id="opMedia"/>
<ice:commandButton image="#{icon.imagen}" action="#{boardBean.selectIcon(icon)}">
    <f:ajax render="opMedia"/>
</ice:commandButton>

Затем в вспомогательном компоненте "BoardBean" (это @Viewscoped)

this.opMedia.setSource(uri.toString());

Идея заключается в том, что при выборе значка формируется URL-адрес со звуком и устанавливается как источник outputMedia.

В гугл хром работает хорошо. При каждом щелчке компонент ice:outputMedia перерисовывается, поэтому воспроизводится mp3. Но в Firefox и IExplorer этого нет. Я не перерисовываю компонент с новым свойством, поэтому мп3 не проигрывается

Есть идеи, почему? Есть ли «более стандартный» способ сделать это, который работает во всех браузерах?


person Fisu    schedule 24.04.2012    source источник


Ответы (1)


Я нашел проблему. Метод uri.toString() возвращает строку со специальными символами, такими как «&». Этот символ заменяется на &amp;. Chrome может декодировать это в правильный символ и получить URL-адрес, но IE и Firefox не могут.

Теперь проблема будет заключаться в том, чтобы найти решение этой проблемы кодирования/декодирования. Но это будет в другой теме.

person Fisu    schedule 26.04.2012