i have been assigned on making a simple video lecture website with a recommendation feature for students in my place. I have little knowledge on html,css,java & php since i only learnt through YouTube. My main concerns are what should i do first or next and as for recommendation feature, they wanted to use a 'knowledge tree' concept.
E.g. when a student plays video topic V, then the recommended videos will be either video topic X and video topic Z. These recommended videos are based on lecturer's suggestion.
As for the recommendation feature part, the only idea came into my mind is using the (If Else) statement for each video but not sure in what language or where to put the algorithm. Lastly, is it a good practice to store video in mysql database?
You can use video names to show similar videos below active one or you can manualy give each video a code or name and show every video that has that code or name below active one.
Related
I am seaching for a function that simulates clicks on a choice of a Netflix interactive movie, but it seems to be a little more difficult than I thought.
What would probably help is more readable version of the 'cadmium playercore 6' and the 'akira player' as all the variable names are replaced by gibberish in these versions. The part that I am most interested in is the part where the click event gets assigned to the nfp nf-player-container that is probably used to trigger the interactive choices.
Is there any version out there that is a little bit more readable or maybe even a documentation of the Netflix video player source code?
My task is to add some effect to the recorded file.
Here is a script in action I'm using
Recorder.JS
and here is a code https://github.com/cwilso/AudioRecorder/blob/master/js/recorderjs/recorder.js
I want to add pitch.
I tried looking in other codes which add some effects to the audio.
But it seems like recorder.js handles buffers differently.
edit
function playbackRecorderAudio() {
audioRecorder.getBuffer(function(buffers) {
var source = audioContext.createBufferSource();
source.buffer = audioContext.createBuffer(1, buffers[0].length, 44100);
source.buffer.getChannelData(0).set(buffers[0]);
source.buffer.getChannelData(0).set(buffers[1]);
source.connect(audioContext.destination);
source.noteOn(0);
});
}
here is how my code looks now, with this function, I request already recorded audio and play it back.
Can I simulate some effect to get close to this: http://www.youtube.com/watch?v=Lr80slqJ3zo
This is in Georgian but I hope you get the idea. Its more like Helium Pitch. (note, I don't whant to change audio speed).
When I tried to research helium effect I found this: http://chemistry.about.com/b/2013/08/26/helium-voice-is-not-higher-in-pitch.htm
it saies that sound should be 2.5 faster then air.
Can I get something close to this?
edit
from what #cwilso suggested, http://chromium.googlecode.com/svn/trunk/samples/audio/granular.html is the closest I have seen so far. But I could not manage to modify it, to work with my playbackRecorderAudio().
Thats why I'm starting a bounty with everything I have
edit
here is a jsFiddle of my code:
http://jsfiddle.net/Lsvnp/1/
First let me describe what I'm trying to achieve:
I want to record sound from users microphone, add this effect to it.
When user press "stop recording" button (stopRecording function) , it will prepend HTML audio which will allow user to listen what he has recorded. If he likes it, he then will upload it to my server (uploadAudio function)
WHen page is loaded, recording is not initalized. to initialize recording, user has to press some button which will trigger recordAudio function.
Now the problem is that I don't know where to connect my playbackRecorderAudio function. to use it as coverter from buffer.
The code of the granular effect you want is usable. The only thing you need to do is connect the output from your source node to the first node of the granular effects page code. Still that code is a bit messy but I will try to explain it as good as possible beneath.
After some searching in the code, it looks like the audio structure goes like this:
source -┬-> grainWindowNode -┬-> panner -┬-> dryGain -> compressor -┬-> destination
└-> bypass -┘ └-> wetGain -> convolver -┘
I made the code so it works for you, see this jsfiddle
This is a bit hard to make as you need to set all the values yourself to fit what you want.
All the code is in the jsfiddle, and there are two things you have to do to make it work:
read the comment on top (download that file and put it on the same server as where you are hosting it, else CORS makes sure you can't fetch the resource. (or you must specify a header on the server)
Put this code somewhere in your code, so that the function playbackRecorderAudio() does something useful. I can help you if you provide me all your code, to make sure it works.
If you want any explainment about the code feel free to ask (I do not know your current knowledge about the audio api, and to explain everything?)
You should probably look at using OfflineAudioContext rather than Recorder.JS - OAC can work in faster-than-realtime.
That said - "helium pitch" looks pretty hard to do, as it alters the harmonics of your voice. That sounds more like vocoding, with the voice sound being the modulator and the carrier, but shifting the harmonic bands (or something like that). The YouTube video you pointed to sounded like it was actually pitch-shifted, but with rate correction - like granular synthesis. Check out Chris Rogers' example http://chromium.googlecode.com/svn/trunk/samples/audio/granular.html - set the speed to 1.0, and the pitch to something greater than zero (several hundred cents, at least). Is this the effect you're looking for? If you, you can dig in to Chris' example to see how to do that, or use a live-effect version like the "pitch doubler" in my input effects (http://webaudiodemos.appspot.com/input/) (which can actually be set to be faster or slower, and controlled to be something other than octaves).
Pitch shifting is achieved using FFT (Fast Fourier Transform) which is implemented in the Web Audio API. O'Reilly has a book "Web Audio API" which covers the API nicely. You can see the chapter on Pitch and the Frequency Domain here.
I'm creating a streaming music service on my website using a fork of jPlayer called jPlaylister.
One thing this doesn't do is scroll the playlist to the currently playing song.
I would also like to implement a nicer scrollbar for manually scrolling the playlist (instead of using browser default).
I came across http://jscrollpane.kelvinluck.com/index.html which looks perfect for what i want (it can do both things).
So when i tried implementing it, it just didn't work. No results, nothing. It's like the code wasn't even there.
I of course included the neccessary js files and put the below JS function in my head:
$(function()
{
$('.scroll-pane').jScrollPane();
});
I actually changed the .scroll-pane class name to an existing class name (the one which i want to scroll of course).
If anyone has successfully got this working (as i've seen a few questions on the same subject on various forums, websites etc) then i'd love some help!
The development version (http://jplaylister.yaheard.us/dev/) has this feature...I'm long overdue for a release, but prepped the files for someone else and will be happy to pass it on to you if you are interested.
nc (jplaylister author)
email at thenickchapman ... gmail or use the jplayer google group and tag me or something crazy.
Say i have a HTML5 tag. Is there any possible way for Javascript on the page to get the current speaker output, and then graph it to produce a volume bar that got larger when the music got louder and smaller when the music got quieter? I don't care if it works in IE or not. If this is not possible, would it be possible to extract that data out of the mp3 file and hope it lines up? I REALLY don't want to use flash.
Edit: I was inspired by this. Unfortunately it uses hard-coded values which wont work for me.
Short answer, yes it's possible. Check out the esteemed Mr. Doob's example. Sadly, looks like the explanatory blog post is down.
Mozilla has a custom extension, but Doob's example is working in WebKit...
The JS Audio Data API will let you do this with an html5 audio tag, or audio that is played from javascript. See https://wiki.mozilla.org/Audio_Data_API for details and examples. I don't know offhand what the status of this API is in current browsers.
I'm aware this is probably a very simple problem with a 1-line-of-code answer but I've been on it a while now and it's still eluding me. We have a site that comprises mainly of an embeded flash object containing navigation controls. All I want is to insert a small .swf movie that will play like an intro scene to the website before the main .swf loads for the site itself. All this means is I want to call up 1 flash object, play it through and then replace it with another once finished. This seems to be a relatively simple desire but after a couple of hours worth of forum-trawling I'm still denied a simple solution. Anyone know any better?
The simpler solution is for all of this to be handled within Flash. That would give you a finer overall control.
If you handled this both with Javascript & Flash, a likely problem will be to have to wait for a movie to be loaded before it starts playing.
You could for instance call a Javascript function from the first movie when it completes playing, but you won't be able to avoid the delay between the two movie whilst the second movie loads.
If for some reasons, you don't have access to the code in any of these movies, create a third movie that will act as a container for both swfs where you'll be able to monitor loading progress and react accordingly.
As far as I know (will be glad if someone will correct me) you can't really know when Flash object has finished loading - for the JavaScript code it's pretty much "black box".
So, your best alternative is hide the "intro" after specific amount of time, for example five seconds:
window.setTimeout("document.getElementById('intro').style.display = 'none';", 5000);
This will hide element with the ID "intro" after five seconds.
There are a couple of solutions.
You can embed the intro and the navigation in one movie clip and just show the navigation after the intro movie has played.
You can also use ExternalInterface in flash in the intro movie. ExternalInterface allows Flash to call JavaScript functions and vice versa. So you basiclly write a small function in JS that changes the clips and call it via ExternalInterface at the end of the intro.