Stream Videos In Client App Using Ajax And Java Restlet
Hi I want to stream videos in client app but videos are located in server app. I am using java Restlet and Jquery Ajax to connect client app to server app. Through Ajax call i am c
Solution 1:
After reading your comment, here is my understanding of what you should do. I would not send json to a resource in order to get something, I would just send a simple GET request. You need:
- a resource that returns the file of a video according to its identifier. For the matter of illustration, let's say its url template is /videos/{videoid}
- a web page that contains the links, and the empty video player
- some javascript that set the "src" attribute video player with the url defined above: /videos/{videoid}. The way you compute the videoid is your own business.
Here is the server code:
- the Restlet application, that defines the URI templates
@Override
public Restlet createInboundRoot() {
Router router = new Router(getContext());
// attaches the resource that represents a video, according to its identifier
router.attach("/videos/{videoid}", VideoServerResource.class);
// ... other instructionsreturn router;
}
- the video server resource:
publicclassVideoServerResourceextendsServerResource {
private File video;
@OverrideprotectedvoiddoInit()throws ResourceException {
StringvideoId= getAttribute("videoid");
// Compute pathStringpath="/tmp/" + videoId + ".mp4";
video = newFile(path);
// takes care of not found status responses.
setExisting(video.isFile());
}
@Get("mp4")public File represent() {
return video;
}
}
Here is the client code. This is a sample Web page, with an empty video player. When clicking on the button, the video player is asked to play the http://example.com:9000/videos/testvideo video. In your case, the value testvideo is simply deduced from the link the user click on.
<!DOCTYPE html><html><head><scriptsrc="/static/jquery.js"></script><script>
$('#playVideo').click(function (){
srcPath = "http://127.0.0.1:9000/videos/testvideo";
$('#videoTab').attr('src', srcPath);
$('#videoTab').css('display', 'block');
$('#videoTab').attr('autoplay', true);
});
</script></head><body><buttonid="playVideo"class="btn-primary">PlayVideo</button><videoid="videoTab"height="300"width="500"style="display: none"controls ></video></body></html>
I hope this will help you.
Post a Comment for "Stream Videos In Client App Using Ajax And Java Restlet"