无法使用primefaces 6.0版中的primefaces媒体播放视频

时间:2017-03-10 03:06:12

标签: jsf primefaces

public StreamedContent getVideoFile() {

    HttpSessionUtil<byte[]> sessionUtil =  new HttpSessionUtil<byte[]>();
    byte[] videoFile = sessionUtil.getFromSessionMap("video");
    FacesContext context = FacesContext.getCurrentInstance();
    if (context.getCurrentPhaseId() == PhaseId.RENDER_RESPONSE) {

        videoFile = convertDefaultVideoToBytes(videoFile);
        return new DefaultStreamedContent(new 
                ByteArrayInputStream(videoFile), "video/mp4");
    }

    if(videoFile != null && videoFile.length > 0){
        videoFile = new DefaultStreamedContent(new 
        ByteArrayInputStream(videoFile), "video/mp4");

    }else{

        videoFile = convertDefaultVideoToBytes(videoFile);
        videoFile = new DefaultStreamedContent(new 
        ByteArrayInputStream(videoFile), "video/mp4");

    }
    return videoFile;
}

xhtml代码:

    <p:media value="#{vesumeBean.videoFile}" width="100%" height="400" 
                                player="quicktime">
        <f:param name="autoPlay" value="true" />
    </p:media>

ManagedBean是javax.faces.bean.SessionScoped 视频的最终字节[]长度约为480835

目标是视频应在加载屏幕后开始播放。 无法使用p:media播放视频。

  • 使用的技术堆栈:JSF / Primefaces 6.0 / Wildfly10.1.0 Final。问题:
  • p:媒体不加载/播放视频文件
  • 错误:[org.primefaces.application.resource.StreamedContentHandler]:       流动态资源出错。空

视频应从指定路径加载并开始播放。

FacesContext.getCurrentPhaseId()== PhaseId.RENDER_RESPONSE此块执行两次,第三次执行else部分

完美适用于Firefox。任何与此相关的帮助都非常感谢。

0 个答案:

没有答案