background preloader

Capturing Audio & Video in HTML5

Capturing Audio & Video in HTML5
Introduction Audio/Video capture has been the "Holy Grail" of web development for a long time. For many years we've had to rely on browser plugins (Flash or Silverlight) to get the job done. Come on! HTML5 to the rescue. This tutorial introduces a new API, navigator.getUserMedia(), which allows web apps to access a user's camera and microphone. The road to getUserMedia() If you're not aware of its history, the way we arrived at the getUserMedia() API is an interesting tale. Several variants of "Media Capture APIs" have evolved over the past few years. I'll try to summarize what happened in 2011... Round 1: HTML Media Capture HTML Media Capture was the DAP's first go at standardizing media capture on the web. If you wanted to let users take a snapshot of themselves with the webcam, that's possible with capture=camera: Recording a video or audio is similar: Kinda nice right? Support: Android 3.0 browser - one of the first implementations. Round 2: device element Take a breath. Round 3: WebRTC OK.

Media Capture and Streams 4. MediaStream API 4.1 Introduction The MediaStream interface is used to represent streams of media data, typically (but not necessarily) of audio and/or video content, e.g. from a local camera. Each MediaStream object can contain zero or more tracks, in particular audio and video tracks. Each track in a MediaStream object has a corresponding MediaStreamTrack object. A MediaStreamTrack represents content comprising one or more channels, where the channels have a defined well known relationship to each other (such as a stereo or 5.1 audio signal). A channel is the smallest unit considered in this API specification. A MediaStream object has an input and an output. Each track in a MediaStream object can be disabled, meaning that it is muted in the object's output. A MediaStream can be finished , indicating that its inputs have forever stopped providing data. The output of a MediaStream object MUST correspond to the tracks in its input. Both MediaStream and MediaStreamTrack objects can be cloned.

TypeScript: JavaScript Development at Application Scale - Somasegar's blog In addition to supporting industry-standard programming languages, such as C++, Python, and JavaScript, Microsoft has always been at the forefront of creating great programming languages – Visual Basic, C#, and F# being the most recent examples. We create programming languages to solve problems and to enable a broad set of people to build software. Today, we’re introducing a new programming language that solves a very specific problem – getting JavaScript development to scale. During the past five years, JavaScript speed has doubled every nine months (as measured by the WebKit SunSpider JavaScript benchmark.) Here’s a good overview of and introduction to TypeScript by Anders Hejlsberg: Application-Scale JavaScript JavaScript was originally designed to be a client-side scripting language for web pages, and for many years it was limited to event handlers that scripted a Document Object Model (DOM). Enter TypeScript. TypeScript Starts and Ends with JavaScript Class Declarations and Modularity

20+ Demos Showing Advanced jQuery Effects Just a short while ago, Flash was one of the primary technologies used by web designers to add interactivity to a website. Since the introduction of the iPad, with its lack of the Flash Player, there’s an acceleration in the web development world to use alternative technologies to Flash, such as jQuery, Ajax and others. Although Flash is still a very powerful and useful tool, which works great on many cases, several of the effects that web designers are accustomed to creating in Flash, can be just as easily implemented using jQuery. Here are 21 online demos that show the power of jQuery for creating advanced effects and interactivity that can rival Flash. 1. This demo mimics the popular card flip technique which can rotate an element 360 degrees around its own x or y-axis. 2. jQuery Quicksand plugin This is a great plugin for sorting an array of elements/icons on a page with nice fade-in/fade-out and animation effects. 3. 4. 5. 6. 7. jQuery Circulate 8. 9. 10. 11. 12. 13. 14. 15. 16. 19. 20.

navigator.getUserMedia - WebRTC Prompts the user for permission to use a media device such as a camera or microphone. If the user provides permission, the successCallback is invoked on the calling application with a LocalMediaStream object as its argument. Syntax navigator.getUserMedia ( constraints, successCallback, errorCallback ); Example Here's an example of using getUserMedia() with browser prefixes. Parameters constraints The constraints parameter is a MediaStreamConstraints object with two Boolean members: video and audio. If the value or the member is not specified in the object, the value for the member defaults to false. successCallback The getUserMedia function will call the function specified in the successCallback with the LocalMediaStream object that contains the media stream. function(localMediaStream) { var video = document.querySelector('video'); video.src = window.URL.createObjectURL(localMediaStream); video.onloadedmetadata = function(e) { // Do something with the video here. }; }, errorCallback Permissions

Le Programmeur Moderne - Le JavaScript moderne Ces dernières années, l'utilisation de JavaScript a évolué jusqu'à en faire un incontournable du web. L'écrasante majorité des navigateurs supportent JavaScript, que ce soit pour les ordinateurs de bureau ou les téléphones portables. Les navigateurs web optimisent continuellement leurs moteurs JavaScript et les développeurs en profitent pour apporter des applications entières sur le web. Le succès de JavaScript est tel qu'il s'étend désormais à d'autres usages : Node.js, CouchDB ou encore Meteor utilisent JavaScript pour créer des sites web, mais cette fois aussi du côté serveur ! Paradoxalement, la réputation de JavaScript a longtemps été mauvaise, et on n'imagine pas forcément au premier abord toutes les possibilités aujourd'hui offertes par JavaScript. L'utilisation principale de JavaScript reste aujourd'hui l'aide à la navigation sur un site web. L'histoire mouvementée de JavaScript La préhistoire C'est en 1995 qu'a eu lieu sur le web le début de la guerre des navigateurs.

Cinéma Le Méliès Le nom de Montreuil est fortement associé au septième art : le pionnier Émile Reynaud, les studios Albatros, les frères Pathé et bien sûr Georges Méliès, l’inventeur des effets spéciaux. La Ville lui consacre un équipement dédié au cinéma. Le cinéma Georges-Méliès est classé « art et essai » et doté des labels « recherche et découverte », « jeune public » et « répertoire et patrimoine ». Il réalise actuellement près de 200 000 entrées par an, prouvant que l’on peut être à la fois une salle exigeante, dynamique et accessible au public familial. Il est également reconnu comme l’un des cinémas les plus actifs de France en organisant de nombreux débats en présence de réalisateurs ou de comédiens invités. Parmi ceux accueillis figurent Manuel de Oliveira, Hong Sang-Soo, Emmanuel Bourdieu, Peter Bogdanovich, Jacques Audiard, Laurent Cantet, Benoît Jacquot, Vincent Lindon, Salomé Stévenin, René Ferret, Jacques Doillon, Todd Solondz, Nuri Bilge Ceylan, Milos Forman, Fanny Ardant…

jQuery Lightbox Evolution Lightbox Evolution is a tool for displaying images, html content, maps, and videos in a “lightbox” style that floats overtop of web page. Using Lightbox Evolution, website authors can showcase a wide assortment of media in all major browsers without navigating users away from the linking page. Screenshots Testimonials Themes iPad Compatible Technical Support If you have any questions, please contact me from my profile page here. Changelog 1.8.0 (Aug 17 2013) * jQuery 2.0 compatible * JW Player 6 compatible 1.7.3 (Feb 24 2013) * Fixed multiple galleries bug. * Added youku.com video server. * Fixed '__flash__removeCallback' is undefined error in all versions of IE. 1.7.2 (Feb 21 2013) * Fixed data-options bug with malformed JSON. 1.7.1 (Feb 17 2013) * Now you can change the duration of the transition "loading". 1.7.0 (Jan 25 2013) * Added retina support to default theme. * Added retina support to evolution theme. * Added retina support to carbono theme. * Changed default animation.

jRecorder – jQuery plugin for audio recording | Programming Ideas, Logics, Tips and Tricks Recently I made a jQuery plugin named jRecorder to record voice in html pages. This plugin is very easy to integrate with your web page and you DON’T need a flash server or RED5 server to do the recording What all you need is a Web Server (PHP or any server scripting language). You can find the documentation and Download the plugin HERE. eg: $.jRecorder( settings ); Another advantage is your can decide your recorder design, buttons , mic activity level , recording progress etc in HTML+CSS and this plugin gives you many recording callback events to manage. This plugin sends recorded WAV file to your webserver, where you can save this file where ever you wish. The technology used here is, the plugin uses hidden swf file to record the voice and save the binary data in browser’s cache and when the recording finishes, it sends the data to webserver. The plugin is good for recording voice less than 180 seconds (3 min), else the time to upload the final data to server takes longer. Thanks Sajith

ECMAScript 5 Strict Mode, JSON, and More Previously I analyzed ECMAScript 5’s Object and Property system. This is a huge new aspect of the language and deserved its special consideration. There are a number of other new features and APIs that need attention, as well. Strict Mode Strict Mode is a new feature in ECMAScript 5 that allows you to place a program, or a function, in a “strict” operating context. Since ECMAScript 5 is backwards-compatible with ECMAScript 3, all of the “features” that were in ECMAScript 3 that were “deprecated” are just disabled (or throw errors) in strict mode, instead. Strict mode helps out in a couple ways: It catches some common coding bloopers, throwing exceptions.It prevents, or throws errors, when relatively “unsafe” actions are taken (such as gaining access to the global object).It disables features that are confusing or poorly thought out. Most of the information about strict mode can be found in the ES5 specification [PDF] on page #235. How do you enable strict mode? Simple. // Non-strict code...

WAMI Toolkit 10 Impressive JavaScript Animation Frameworks Complex and slick JavaScript-based animation has been made easier with the emergence of frameworks and libraries that give developers the ability to create stunning and eye-grabbing animation and transition effects that make it easy these complex tasks. In this article, you will read about the top 10 JavaScript-based animation frameworks and libraries that will enable you to create engaging and captivating user experiences. 1. $fx $fx is a compact and lightweight JavaScript animation library which extends native JavaScript DOM methods with its own animation methods and functions. 2. jsAnim Created by web developer Kevin Dolan, jsAnim is a JavaScript animation framework for creating high-impact and slick animation sequences for web interfaces. 3. scripty2 scripty2 is a flexible and lightweight JavaScript animation framework for developing delicious visual effects. 5. Glimmer is a framework for easily creating interactive elements on your web pages. 6. 7. 8. 9. 10. Related content

Wiki de l'internet libre Bienvenue ! L'objectif de ce wiki est d'établir une base de connaissances technique communes et vulgarisées qui nous permettra à tous de profiter d'Internet et de l'espace de liberté que ce formidable outil nous offre. Rédigez vos tutos ! Mettez des captures écrans ! Si vous souhaitez participer et publier/modifier/corriger des tutoriels et explications techniques sur les thèmes suivants, alors créez-vous un compte et éditez les pages de votre choix. Ne mettez rien d'illégal, SVP (fichiers piratés and Co), évitez les sujets politiques, religieux etc... et bien sûr si vous voyez des conneries, fautes d'orthographes, etc... faites par d'autres, corrigez-les ou revenez à une version précédente. Ensuite, vous pouvez donner la forme que vous voulez à ce wiki en créant de nouvelles pages, de nouvelles rubriques et en architecturant cela comme bon vous semble. Ah ! Merci à tous. Pour commencer Un chat est disponible pour discuter en direct entre lecteurs/contributeurs du wiki. !! MOBILISEZ VOUS!!

JavaScript : 3 fondamentaux Après quelques années à écrire dans un langage, on finit facilement par oublier les premières difficultés que l’on avait rencontrées. Et à force de faire de la veille, de l’autoformation et de parler entre experts dans des conférences, j’ai un peu quitté la réalité de la majorité des équipes Web. Maintenant que je suis consultant indépendant je retourne dans des équipes qui avaient autre chose à faire que de se demander si on a le droit de parler de classe en JavaScript, quelle est la bonne définition d’une closure, ou quelles sont les fonctionnalités de EcmaScript 5 qui auraient du rester dans Ecmascript.Next. J’avais déjà parlé sur ce blog de JavaScript et la programmation orienté objet pour les développeurs PHP, nous allons explorer ici les 3 notions fondamentales de JavaScript qui sont probablement les plus grosses sources de bugs, d’incompréhension et de frustration pour le développeur Web moyen. Le maître mot de ses concepteurs semble avoir été la versatilité. La théorie La pratique

Facebook sait si vous êtes gay, Google que vous êtes enceinte. Et ta soeur ? Facebook sait probablement si vous êtes gay, ou célibataire (quand bien même vous ne l’ayez pas expressément précisé sur votre profil), et peut-être même si vous êtes infidèle, ou bien cocu(e). Google, de son côté, sait probablement si vous êtes enceinte, ménopausée, diabétique ou anorexique, si vous avez un cancer, ou allez bientôt être opéré… entre autres. Le soi-disant « Bug de Facebook » a défrayé la chronique le temps… d’une soirée (cf les conclusions de la CNIL, qui confirment l’excellente synthèse du Monde.fr). A cette occasion, j’ai tenté de résumer ce pour quoi la vie privée n’est PAS un problème de vieux cons -pour paraphraser le titre du livre que j’ai consacré à ces questions– dans un tweet qui, reprenant le raccourci que j’avais prononcé à l’antenne, a eu le don de heurter certaines susceptibilités, dont celles de William Rejault, ce qui n’était bien évidemment pas mon intention : @manhack ça vous choque pas d’associer gays et sida comme ça ? L’espion qui venait de chez moi

Related: