I have been looking into HTML5 and it's capabilities to play audio and video content on the web without requiring any browser plug-in. In this post I will be explaining how one can embed an audio file into a web page and add controls to perform various operations on it.
Embedding an audio file in a web page is as easy as this:
Attributes that make life easier:
The audio tag has few attributes and one of them is the autoplay attribute. This is a boolean attribute and when specified it means that whenever a user visits the web page the audio file will be played automatically. One can just specify the attribute and provide no value for it. This makes sense because one has included it implies that the attribute value is true:
The other attribute is loop. The loop attribute as it says that once the audio file has been played it will start playing from the beginning of the file.
Formats:
Although most of us use the mp3 format of audio files, one should note that some browser may support this format but some may not. For example, the Safari browser does support the mp3 format but Firefox does not. The reason behind this is that the mp3 format is patented, but there are always other formats at your disposal which are open to use. One such format is the ogg format which is supported in the Firefox browser, however Safari doesn't support that. Fortunately there is way that we can use the audio element without having to make a choice between the file formats.One can specify multiple format using the source elements:
Embedding an audio file in a web page is as easy as this:
<audio src="testFile.mp3">
</audio>
Attributes that make life easier:
The audio tag has few attributes and one of them is the autoplay attribute. This is a boolean attribute and when specified it means that whenever a user visits the web page the audio file will be played automatically. One can just specify the attribute and provide no value for it. This makes sense because one has included it implies that the attribute value is true:
<audio autoplay="" src="testFile.mp3">
</audio>
By specifying autoplay="true" or autoplay="false" wouldn't make any difference at all. It is same as writing just autoplay. IMO one would not like to hear an audio file whenever he\she visits the web page.The other attribute is loop. The loop attribute as it says that once the audio file has been played it will start playing from the beginning of the file.
<audio autoplay="" loop="" src="testFile.mp3">
</audio>
The next attribute is controls, this attribute provides the user a control over the playback of the audio file mentioned in the src attribute. User can play, pause and increase\decrease the volume using the native controls provided by the browser. <audio controls src="testFile.mp3">
</audio>
The Audio API is provided to the users that provides control over the playback of the audio file using Javascript. The Audio API provides methods play and pause to control the playback and a property volume is provided to increase\decrease the volume. In the below example I'm placing four buttons that can be used control the playback: <audio id="myPlayer" src="testFile.mp3">
</audio>
<button onclick="document.getElementById('myPlayer').play()"> Play </button>
<button onclick="document.getElementById('myPlayer').pause()"> Pause </button>
<button onclick="document.getElementById('myPlayer').volume +=0.1"> Volume Up </button>
<button onclick="document.getElementById('myPlayer').volume -=0.1"> Volume Down </button>
There is also an attribute by name preload that lets user to start buffering the audio file when the page is loaded. Unlike other attributes the preload attribute takes three values: none, auto and meta. 'none' tells the browser not to preload the audio, on the other hand 'auto' tells the browser to to preload the audio and 'meta' tells the browser to load only the meta data. <audio controls="" preload="auto" src="testFile.mp3">
</audio>
If there are many audio tags with preload set to auto then the bandwidth could get affected with immoderate preloading.Formats:
Although most of us use the mp3 format of audio files, one should note that some browser may support this format but some may not. For example, the Safari browser does support the mp3 format but Firefox does not. The reason behind this is that the mp3 format is patented, but there are always other formats at your disposal which are open to use. One such format is the ogg format which is supported in the Firefox browser, however Safari doesn't support that. Fortunately there is way that we can use the audio element without having to make a choice between the file formats.One can specify multiple format using the source elements:
<audio controls="">
<span class="Apple-tab-span" style="white-space: pre;"> </span><source src="testFile.ogg"></source>
<span class="Apple-tab-span" style="white-space: pre;"> </span><source src="testFile.mp3"></source>
</audio>
A browser that can play the ogg file format will skip the formats mentioned after the first source element. If the browser is not capable of playing the format mentioned in the first source element then it will see whether the file format mentioned for the next source element can be played. One can also specify the mime type for the source elements. <audio controls="">
<source src="testFile.ogg" type="audio/ogg"></source>
<source src="testFile.mp3" type="audio/mp3"></source>
</audio>
Comments
Post a Comment