2014-10-16 1 views
3

내 Vaadin 응용 프로그램 중 하나에서 html5 오디오를 표시하는 데 사용합니다. 브라우저에서 데이터를 요청하고 파일을 저장하면 재생할 수 있지만 Vaadin에서 시도 할 때 항상 실패합니다..maa 사운드 파일 (Vaadin 7.3.2)을 재생할 때 Vaadin 오디오 요소가 작동하지 않습니다.

내가 잘못 생각한 점이 있습니까?

public class AudioArea extends Audio { 

    public AudioArea(final int soundId) { 
     super(); 
     StreamResource resource = new StreamResource(
      new StreamResource.StreamSource() { 

       public InputStream getStream() { 
        byte[] data = MyVaadinUI.request.getBinaryData(
          soundId, BinaryDataSource.TYPE_SOUND, 0, 0); 
        if (data == null) { 
         return null; 
        } 
        return new ByteArrayInputStream(data); 
       } 
      }, ""); 
     setSource(resource); 
     markAsDirty(); 
    } 
} 

답변

0

브라우저에서 형식을 지원합니까? 당신이 일반 html로 그것을 시도한다면 당신은 그것을 할 수 있습니까?

Audio audio = new Audio("MyAudio"); 
audio.setSource(new ThemeResource("audio/myAudio.m4a")); 
myLayout.addComponent(audio); 

그리고 당신은 당신의 테마 폴더에 파일을 넣을 수있는 (또는 대신 FileResource을 사용할 수 있습니다) : 브라우저가 형식을 지원하는 경우
는 , 나는이 좋습니다. 내가 직접 연주 크롬에서 파일을 .M4A 수

StreamResource resource = new StreamResource(
    new StreamResource.StreamSource() { 

     public InputStream getStream() { 
      byte[] data = MyVaadinUI.request.getBinaryData(
        soundId, BinaryDataSource.TYPE_SOUND, 0, 0); 
      if (data == null) { 
       return null; 
      } 
      return new ByteArrayInputStream(data); 
     } 
    }, "") { 
     @Override 
     public String getMIMEType() { 
      return "audio/mp4"; 
     } 
    }; 
+0

:

편집

아마 누락 된 MIME 유형의 문제입니다. 그것들은 html5

관련 문제