@RequestScoped
@ManagedBean
public class AudioBacking {
@ManagedProperty(value = "#{audioService}")
private AudioService audioService;
private String encodedMp3ResourceURL;
private FacesResource oggAudio;
private List<FacesResource> audios;
public List<FacesResource> getAudios() {
return audios;
}
public String getEncodedMp3ResourceURL() throws UnsupportedEncodingException {
if (encodedMp3ResourceURL == null) {
FacesContext facesContext = FacesContext.getCurrentInstance();
Application application = facesContext.getApplication();
ResourceHandler resourceHandler = application.getResourceHandler();
Resource mp3AudioResource = resourceHandler.createResource("over-the-rainbow.mp3", "audios");
String requestPath = mp3AudioResource.getRequestPath();
ExternalContext externalContext = facesContext.getExternalContext();
String mp3ResourceURL = externalContext.encodeResourceURL(requestPath);
encodedMp3ResourceURL = URLEncoder.encode(mp3ResourceURL, "UTF-8");
}
return encodedMp3ResourceURL;
}
public FacesResource getOggAudio() {
if (oggAudio == null) {
oggAudio = new FacesResource("audios", "over-the-rainbow.ogg");
}
return oggAudio;
}
@PostConstruct
public void postConstruct() {
audios = audioService.getAllAudios();
}
public void setAudioService(AudioService audioService) {
this.audioService = audioService;
}
}