1

次のような埋め込みタグがあります

<embed id="player" style="height:100%;width:100%"src="../PlayAudio2" controller="true" autoplay="true" autostart="True" type="audio/wav" />

サーブレットからファイルを再生できますdoGet

File file = new File("Z:/53611.wav");
FileInputStream fis;
byte[] buffer=null;
try {
  fis = new FileInputStream(file);
  buffer= new byte[fis.available()];
  fis.read(buffer);
  fis.close();
} catch (FileNotFoundException e) {             
  e.printStackTrace();
} catch (IOException e) {           
  e.printStackTrace();
}     
response.setContentType("audio/vnd.wave");     
try {               
  response.getOutputStream().write(buffer);            
} catch (IOException e) {
  // TODO Auto-generated catch block
  e.printStackTrace();
}

私が試した春に行う方法はありますか

  <embed id="player" style="height:100%;width:100%"src="PlayAudio.html" controller="true" autoplay="true" autostart="True" type="audio/wav" />

サーブレットと同じリクエストハンドラーコードを使用しますが、ここでは、PlayAudio.html.how can i do in Spring.

編集: コントローラー

@Controller
@RequestMapping("main")
public class ApplicationController {

  @RequestMapping(value="Login.html",method=RequestMethod.POST)
    public String showhome(){   
        return "home";
    }

  @RequestMapping(value="PlayFile.html",method=RequestMethod.GET)
    public void playAudio(HttpServletRequest request,HttpServletResponse response){
            System.out.println("--playFile");
        File file = new File("Z:/53611.wav");
            FileInputStream fis;
            byte[] buffer=null;
            try {
                fis = new FileInputStream(file);
                buffer= new byte[fis.available()];
                fis.read(buffer);
                fis.close();
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }        


           response.setContentType("audio/vnd.wave");
        try{                
            response.getOutputStream().write(buffer);              
        } catch (IOException e) {
            e.printStackTrace();
        }       

    }
}

私は持っているwebcontentの下のメインフォルダにHome.jspを持っています

<embed id="player" style="height:100%;width:100%" src="PlayFile.html" controller="true" autoplay="true" autostart="True" type="audio/wav" />

および URL マッピング

  <servlet-mapping>
    <servlet-name>dispatcher</servlet-name> 
    <url-pattern>*.html</url-pattern>    
  </servlet-mapping>

しかし、機能していません(PlayFile.htmlハンドラーへのリクエストは受信されません)

4

2 に答える 2

1

src は Controller の RequestMapping URL を指す必要があると思います。

@RequestMapping(value = "/audio", method = RequestMethod.GET)  
public ModelAndView getAudio(HttpServletResponse) { ... response.getOutputStream().write(buffer); ... }

次に、次のように src で参照します。

<embed id="player" style="height:100%;width:100%"src="<your-context-path>/audio" controller="true" autoplay="true" autostart="True" type="audio/wav" />
于 2013-11-08T17:23:57.477 に答える
0

type="audio/wav" に問題があり、埋め込みタグからタイプを削除した後、オーディオを再生できました

<embed id="player" style="height:100%;width:100%" src="PlayFile.html" controller="true" autoplay="true" autostart="True" />
于 2013-11-15T10:30:23.570 に答える