Search Results

Search found 5991 results on 240 pages for 'html5 audio'.

Page 10/240 | < Previous Page | 6 7 8 9 10 11 12 13 14 15 16 17  | Next Page >

  • iOS 5 Audio Alarms Don't Sound Without kAudioSessionProperty_OverrideCategoryMixWithOthers On

    - by coneybeare
    I have an audio app that is having some problems with the way iOS 5 has changed audio behaviors. When my app's audio is playing (AVAudioSessionCategoryPlayback), and a Clock.app alarm or timer is fired from the OS, the UIAlertView notification pops up, but without the audio alert. My application sound ducks fine to get out of the way of the audio alert, but the alarm app's audio alert does not sound. Naturally, tons of support requests poured in over the iOS 5 change. I have solved this temporarily by setting kAudioSessionProperty_OverrideCategoryMixWithOthers which lets the alarm audio come through, but there are a few very undesirable side-effects when doing this: Other app's audio can play with/over mine. The remote control events are not routed to my app, but to iPod.app. None of the above drawbacks are acceptable for my app's requirements. I have been hacking away at this for some time now but haven't been able to crack it. How can I setup my audio such that: My app's audio still uses the AVAudioSessionCategoryPlayback category for background audio. The Clock.app alarms still have their audio alerts make sound The app still responds to remote control notifications

    Read the article

  • Why do only the controls show up when using HTML5 video on Chrome?

    - by Rob
    I'm using the following HTML5 to display video, but only the controls show up in Chrome. Works fine in Safari and Firefox: <video width="720" height="480" controls="controls" preload="preload"> <source src="<?php bloginfo('url'); ?>/wp-content/uploads/Reel.ogv" type="video/ogg; codecs=theora,vorbis" > <source src="<?php bloginfo('url'); ?>/wp-content/uploads/Reel.mp4" type="video/mp4"> Your browser doesn't support video. </video> Any ideas?

    Read the article

  • Learn About HTML5 and the Future of the Web

    Learn About HTML5 and the Future of the Web San Francisco Java, PHP, and HTML5 user groups hosted an event on May 11th, 2010 on HTML5 with three amazing speakers: Brad Neuberg from Google, Giorgio Sardo from Microsoft, and Peter Lubbers from Kaazing. In this first of the three videos, Brad Neuberg from Google (formerly an HTML5 advocate and currently a Software Engineer on the Google Buzz team) explains why HTML5 matters - to consumers as well as developers! His overview of HTML5 included SVG/Canvas rendering, CSS transforms, app-cache, local databases, web workers, and much more. He also identified the scope and practical implications of the changes that are coming along with HTML5 support in modern browsers. This event was organized by Marakana, Michael Tougeron from Gamespot, and Bruno Terkaly from Microsoft. Microsoft was the host and Marakana, Gamespot, Medallia, TEKsystems, and Guidewire Software sponsored the event. marakana.com From: GoogleDevelopers Views: 177 6 ratings Time: 50:44 More in Science & Technology

    Read the article

  • pitchbend (varispeed) audio with iPhone SDK's AudioUnit

    - by fetzig
    hi, I'm trying to manipulate the speed (and pitch) of a sound while playing. so i played around with iphone sdk's AudioUnit. downloaded iPhoneMultichannelMixerTest and tried to add an AUComponent to the graph (in this case a formatconverter). but i get (pretty soon) following error when building: #import <AudioToolbox/AudioToolbox.h> #import <AudioUnit/AudioUnit.h> ... AUComponentDescription varispeed_desc(kAudioUnitType_FormatConverter, kAudioUnitSubType_Varispeed, kAudioUnitManufacturer_Apple); ^^ error: 'kAudioUnitSubType_Varispeed' was not declared in this scope. any ideas why? the documentation on this topic doesn't help me at all (just api doc isn't very helpful when having no clue about the concept behind). there are no examples on how to wire these effects together and manipulating there properties...so maybe i'm totally wrong, anyway any hint is great. thx for help.

    Read the article

  • Can Flash player play .m3u audio files from a remote location

    - by undefined
    Is it possible to play a .m3u file streamed from a remote location through Flash Player in a browser? I have a player that loads and plays .mp3 files but also want to be able to play .m3u files. I have looked at the as3plsreader on google code but I think this is only for AIR and desktop files. anyone tried this or know where I should start looking for an answer? If I wasnt to use flash, what other ways could I get remote m3u files to play in a browser?

    Read the article

  • How can I get it the Free Music Archive audio player or is there a better alternative?

    - by Dennis Hodapp
    I'm looking at free streaming audio players for web browsers that I can use in a project. I really like the audio player used on http://freemusicarchive.org/. Are they using an open source audio player and can I get a hold of it? Or is it closed source? Also if there are any open-source audio players that anybody knows about I'd love to know about them (preferable to have one with no flash). Last thing...is HTML5 going to be able to replace audio streaming players?

    Read the article

  • Has anyone been able to convert a site's media content from flash to html5?

    - by Muhammad
    I'm looking to convert a site from Flash based video to HTML5, the current video uses time marks to display slides (kind of like how youtube has ads on their videos). But the difference between Youtube and my site is that it doesn't show up inside the video, the slides are displayed next to the video. Is there any way I can accomplish this with HTML5? Or do I have to use Javascript for this? If this isn't clear enough, please let me know.

    Read the article

  • HTML5 Video Tag in Chrome - Why is currentTime ignored when video downloaded from my webserver?

    - by larson4
    I want to be able to play back video from a specific time using the HTML5 video tag (and currently only need to worry about Chrome). This is possible by setting the currentTime property of a video element. That works fine in Chrome with a video sourced from html5rocks.com, but is ignored when the same file is loaded from my own local webserver. Using the sample code from http://playground.html5rocks.com/#video_tag, I have arrived at the following HTML: <!DOCTYPE html> <html> <body> <video id="video1" width="320" height="240" volume=".7" controls preload=true autobuffer> <source src="http://playground.html5rocks.com/samples/html5_misc/chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/> </video> <input type=button onclick="play()" value="play"> <input type=button onclick="setTime()" value="setTime"> <input type=button onclick="pause()" value="pause"> <script> var play=function() { document.getElementById("video1").play(); } var setTime=function() { document.getElementById("video1").currentTime=2; } var pause=function() { document.getElementById("video1").pause(); } </script> </body> </html> Using Chrome, if you Wait for the video to download for a bit (until the progress bar is about 10% in) Press setTime - you should notice the time jump to 2 seconds press play ...the video will start at 2 seconds in. But if I download the webm file in the source src to my local webserver, and change src to point locally: <source src="chrome_japan.webm" type='video/webm; codecs="vp8, vorbis"'/> ...then setting currentTime is complete ignored. No errors are showing in the developer tools console. Now, my webserver is serving this with mime type "video/webm", but it will be served like any old file -- not streamed. Do I need a webserver that streams in some specific way? What else could be at fault here? Note: The webserver is a proprietary platform and won't have any of the same exact settings or controls one might expect of Tomcat or some other commonly used webserver, though there may be other ways to achieve the same effect.

    Read the article

  • webm html5 videos lose connection with apache server

    - by Jizbo Jonez
    webm html5 videos that are played through a domain on my server sometimes lose connection. A video that is playing will start to buffer and then stop part of way through with that message "Video playback aborted due to a network error." displayed on the html5 video player. I am delivering the webm videos via a php script on an LAMP server. There doesn't seem to be any errors in the server logs. Is there any php.ini settings or httpd.conf that I need to set? I recently set 'Keep Alive" to "on" in httpd.conf could that be causing this?

    Read the article

  • YouTube style linking inside HTML5 Video player

    - by Barney
    After a video has played on YouTube, often there will be a follow up link after the video has finished playing in the form of related videos. I'm looking to implement similar into my HTML5 Video. It would look something like this: At the moment, it seems there is nothing in the W3C spec for this (Links inside HTML5 video). Could anyone advise on a method of achieving? I have 50-100 videos on my site on which I would like to implement. Currently I'm thinking a Javascript callback which initiates the Call to action buttons, though I have a feeling this could get complicated...

    Read the article

  • Windows not remembering default audio device?

    - by Lynda
    I prefer the audio output on my computer to use the standard audio jack output due to volume issues. But I am using a monitor with HDMI. I have chosen to set the default audio device to be "Speakers" But every time I reboot the default audio device is the HDMI Output again. I am running Windows 7 64bit. Why does it not remember the default device? (I do shutdown and boot up properly without errors.)

    Read the article

  • No audio device detected

    - by Paul
    My computer has no audio. It says NO AUDIO DEVICE. I already installed Realtek AC97 and Realtek High Definition Audio Driver and I also pasted stream.dll to the Windows and system32 folders and I restarted my computer but it still says NO AUDIO DEVICE. Please help me. Thanks

    Read the article

  • ASUS N45SF - play subwoofer with audio connected

    - by Jaroslav Bucko
    I have notebook ASUS N45SF. It comes with dedicated subwoofer, which is connected to separate audio jack. When I connect any audio device to audio jack, internal speakers remain silent, but subwoofer too. I want to let subwoofer play even with audio device connected to jack. Are there any drivers or settings in OS, which would eneble this behaviour? I have Win7/Ubuntu dualboot so OS doesnt matter. Thanks

    Read the article

  • Responsive Design: Which Framework Should I Use? CSS3 & HTML5

    - by Jayhal
    I've been looking for a suitable set of HTML5/CSS3 foundation files to start new projects on. I started off piecing together my own files, but I believe I might be better served in finding a solid and fairly compatible(with me) CSS3/HTML5 framework and then tweaking certain things that may not best suit my own process. I'd love to find something that is responsive and that includes aspects focusing on layout, type(hor and vert baselines), form and interface components, cross-browser issues, and preferably built on something other than a just imple css reset, but that does include rebuilding elements consistently across browsers for a clean work slate. Extra features like polyfills or others area great, as is good documentation and examples. So far, off the top of my head I know of, Skeleton 1140 Grid 320 & Up (plus BP) HTML5 Boilerplate 2.0 and Mobile Inuit.css Less Framework Fluir Perkins.Less A few WP themes Are there any great one I don't know about? I work a lot in WP, and something that is easily incorporated (but also stand alone) is ideal. Plugins and wide set feature while maintaining the ability to cut it down when needed(flexibility) is also a big plus, and in par with a faster learning, since I want to start using whatever I find immediately . What are some of the better options you guys might be able to recommend? Systems or scripts, plugins, and other related tools are also welcome, Thanks!

    Read the article

  • HTML5 - Does it have the power to handle a large 2D game with a huge world?

    - by user15858
    I have been using XNA game studio, but due to private reasons (as well as the ability to publish anywhere & my heavy interest in isogenic engine), I would like to switch to HTML5. However, I have very high 2D graphic demands for my game. The game itself will have a HDD size of anywhere between 6GB (min) to 12GB (max) which would be a full game deployed offline. The size of the images aren't significantly large, so streaming would be entirely possible if only those assets required were streamed as needed. The game has a massive file size because of the sheer amount of content. For some images or spritesheets, they would be quite massive. (ex. a very large Dragon, which if animated in a spritesheet would be split into two 4096x4096 sheets or one 8192x8192 sheet). Most assets would be very small, and about 7MB for a full character with 15 animations in every direction (all animations not required immediately) so in the size of a few hundred KB to download before the game loads. My question, however, is if the graphical power of HTML5 is enough to animate several characters on screen at once, when it flips through frames quite rapidly. All my sprites have about 25 frames per animation, 5 directions (a spritesheet for each direction & animation), and run at 30fps. Upon changing direction, animation, or a new character entering, spritesheets would change and be constantly loading/unloading. If I pack all directions in a single sheet, it would be about 2048x2048 per sheet. Most frameworks have no problem with this, but I am afraid from what I read that HTML5's graphical capabilities will limit me. Since it takes significant time simply to animate characters in any language, I'd like a quick answer.

    Read the article

  • what is the best mid/high-end class audio/music creation audio sound card?

    - by Chris
    Hello, I have a computershop myself, and I repair computers. But one of the things I really don't know (yet) is the performace od audio cards for music creation with midi. I have searched and searched and came up with some good reviews, but after browsing for a couple of hours I could't see the trees trough the forrest :-D (it's a dutch expression) At one moment I thought the M-Audio - Delta 1010LT would be a good PCIe card, later on I read that this card was released years ago. (but that could be false information) Also any personal expierence would be great, but not necessairy. I have searched a few cards, and I hope someone can help me make a choice for a friend of mine. He's buget is between $100 and $350 I know there are audio cards from $ 500 - $1850,- this is just too expensive. The following specs are crucial: ASIO Midi Mic in minimal 5.1, 7.1 recommended it's not for airplay, but just to compose music at home. using Ableton and midi keyboard. 1. M-Audio - Delta 1010LT: 8 x 8 analog I/O 2 mic preamps or line inputs S/PDIF digital I/O (coaxial) with 2-channel PCM SCMS copy protection control digital I/O supports surround-encoded AC-3 and DTS pass-through 1 x 1 MIDI I/O directly drive up to 7.1 surround (bass management software included) software controlled 36-bit internal DSP digital mixing/routing +4dbu/-10dBV operation individually switched in software word clock I/O for sample accurate device synchronization 2. RME HDSP 9632: * Stereo Analog Ein- und Ausgang, symmetrisch*, 24-Bit/192kHz, > 110 dB SNR * Optionale Erweiterungsboards mit je 4 symmetrischen Ein- und Ausgängen * Alle analogen I/Os voll 192 kHz-fähig, also keine Reduzierung der Kanalzahl * 1 x ADAT Digital In/Out, 96 kHz-fähig (S/MUX) * 1 x SPDIF Digital In/Out, 192 kHz-fähig * 1 x Breakout Kabel für koaxialen SPDIF-Betrieb* * Also bis zu 16 Ein-und Ausgänge gleichzeitig nutzbar! * 1 x Stereo Kopfhörerausgang, parallel zum analogen Ausgang, aber eigene Pegelanpassung * 1 x MIDI I/O für 16 Kanäle Hi-Speed MIDI über Breakout Kabel * DIGICheck, RMEs einzigartiges Meter- und Analysetool mit Spectral Analyser, Professionelle Level Meter 2/8/16-Kanalig, Vector Audio Scope und diversen weiteren Analysefunktionen * HDSP Meter Bridge: Frei skalierbare Levelmeter mit Peak- und RMS Berechnung in Hardware * TotalMix: 512-Kanal Mischer mit 40 Bit interner Auflösung 3. EMU 1212M (1212 M) PCIe: * Top kwaliteit convertors 24-bit/192kHz convertors. * Hardware gestuurde effecten. * DSP zero-latency hardware mixen en monitoring. * Analoge en digitale I/O plus MIDI. * EMU Production Tools Software Bundle - Cakewalk SONAR , Steinberg Cubase LE, Ableton Live E-MU Edition **EMU 1212M PCI-e inputs/outputs:** * 2 balanced jack inputs. * 2 balanced jack outputs. * 24-bit/192kHz ADAT I/O. * 24-bit/192kHz Coaxiale S/PDif I/O switchable to AES/EBU. * MIDI I/O. 4. M-Audio Audiophile 192: - Up to 24-bit/192kHz audio - 2 balanced analog inputs (1/4” TRS) - 2 balanced analog outputs (1/4” TRS) - S/PDIF digital I/O (coaxial RCA connectors) with 2-channel PCM - SCMS copy protection control - Digital I/O supports surround-encoded AC-3 and DTS pass-through - Direct hardware input monitoring via separate balanced 1/4” TRS monitor outputs - Software routing of inputs and outputs - Digital I/O can be routed to/from external effects - 16-channel MIDI I/O - ASIO, WDM, GSIF 2 and Core Audio driver support for compatibility with most applications - 64-bit driver support for Windows - PCI 2.2 compatibility - Apple G5 compatible - Incompatible exceptions - Includes Ableton Live Lite music production software, so you can make music right away - Works with other Delta cards Technical Specifcations: - Compatibility - ASIO - WDM - GSIF 2 - Core Audio

    Read the article

  • Detecting when HTML5 audio is finished playing (more than once)?

    - by user386911
    I am having a problem detecting when an tag is finished playing an mp3. When I do something like this: myAudio.addEventListener("ended", function() { alert("ended"); }); It only occurs the first time the audi is played. When I play the audio again, nothing happens. The same thing occurs when I use the onended=doThis(); method. I've heard maybe there is a way to do it in jquery, but I haven't been able to get it to work. I've also heard there might be a way to fix it by changing the audio div id everytime the mp3 is played, but this doesn't work for me because I need the id to stay the same. Anyone got any ideas?

    Read the article

  • Convert audio file to FLAC with ffmpeg?

    - by elpsk
    can I convert one of this format to compatible 16000.0 Sample Rate FLAC file? kAudioFormatLinearPCM = 'lpcm', kAudioFormatAppleIMA4 = 'ima4', kAudioFormatMPEG4AAC = 'aac ', kAudioFormatMACE3 = 'MAC3', kAudioFormatMACE6 = 'MAC6', kAudioFormatULaw = 'ulaw', kAudioFormatALaw = 'alaw', kAudioFormatMPEGLayer1 = '.mp1', kAudioFormatMPEGLayer2 = '.mp2', kAudioFormatMPEGLayer3 = '.mp3', kAudioFormatAppleLossless = 'alac' I tried using ffmpeg ffmpeg -i audio.xxx -acodec flac audio.flac but result is FFmpeg version CVS, Copyright (c) 2000-2004 Fabrice Bellard Mac OSX universal build for ffmpegX configuration: --enable-memalign-hack --enable-mp3lame --enable-gpl --disable-vhook --disable-ffplay --disable-ffserver --enable-a52 --enable-xvid --enable-faac --enable-faad --enable-amr_nb --enable-amr_wb --enable-pthreads --enable-x264 libavutil version: 49.0.0 libavcodec version: 51.9.0 libavformat version: 50.4.0 built on Apr 15 2006 04:58:19, gcc: 4.0.1 (Apple Computer, Inc. build 5250) Input #0, wsaud, from 'audio.alac': Duration: 00:00:03.8, start: 0.000000, bitrate: 199 kb/s Stream #0.0: Audio: adpcm_ima_ws, 24931 Hz, stereo, 199 kb/s Unable for find a suitable output format for 'audio.flac' I also installed flac codec for mac, but nothing... I tried also use convtoflac.sh (from http://legroom.net/software/convtoflac) but result is similar. Any idea to convert in flac?

    Read the article

  • Change the audio output device in Firefox

    - by Zanami Zani
    I'm trying to play music through Ventrilo and currently I use Virtual Audio Cable. The way it works is that in foobar2000 (a music playing program) I set the output device in preferences to Virtual Audio Cable. Then in Ventrilo I log in to another name and set the input device to Virtual Audio Cable. This routes the music through the Virtual Audio Cable and allows me to play the music through Ventrilo. However, I would also like to change the output device for Firefox (or any other browser) or "Plugin Container for Firefix" to Virtual Audio Cable so that I could play music from Pandora or YouTube on to Ventrilo. Unfortunately I could not find an option for this anywhere.

    Read the article

  • Record the audio stream from HDMI monitor

    - by Nick
    I am trying to record sound playing on my comupter with Audacity but am running into some troubles. I have the stereo mix set to be the default audio recorder but it doesn't pick up the audio that is being played through my HDMI monitors speakers: Playback Recording When I plug in headphones the stereo mix will pick up the audio stream and I can record but not when playing through the HDMI. I have installed the latest audio drivers and have tried all the different record options to no avail. How can I capture the Audio stream going through the HDMI?

    Read the article

  • Dynamic audio score/music

    - by Joel Martinez
    I'm interested in developing a game who's background music changes with the mood and scenario of the game's action. Of course many existing games do this (halo for example), but I was interested in any resources/papers/articles talking about the techniques to develop a system like this. I have some ideas, and I understand that this will be equally challenging to implement at the code level as it will be to come up or acquire music that fits this model. Any links or, answers with ideas in them would he appreciated. Edit: this is the kind of info I'm looking for :) http://halo.bungie.org/misc/gdc.2002.music/

    Read the article

  • Timing issues with playback of the HTML5 Audio API

    - by pat
    I'm using the following code to try to play a sound clip with the HTML5 Audio API: HTMLAudioElement.prototype.playClip = function(startTime, stopTime) { this.stopTime = stopTime; this.currentTime = startTime; this.play(); $(this).bind('timeupdate', function(){ if (this.ended || this.currentTime >= stopTime) { this.pause(); $(this).unbind('timeupdate'); } }); } I utilize this new playClip method as follows. First I have a link with some data attributes: <a href=# data-stop=1.051 data-start=0.000>And then I was thinking,</a> And finally this bit of jQuery which runs on $(document).ready to hook up a click on the link with the playback: $('a').click(function(ev){ $('a').click(function(ev){ var start = $(this).data('start'), stop = $(this).data('stop'), audio = $('audio').get(0), $audio = $(audio); ev.preventDefault(); audio.playClip(start,stop); }) This approach seems to work, but there's a frustrating bug: sometimes, the playback of a given clip plays beyond the correct data-stop time. I suspect it could have something to do with the timing of the timeupdate event, but I'm no JS guru and I don't know how to begin debugging the problem. Here are a few clues I've gathered: The same behavior appears to come up in both FF and Chrome. The playback of a given clip actually seems to vary a bit -- if I play the same clip a couple times in a row, it may over-play a different amount of time on each playing. Is the problem here the inherent accuracy of the Audio API? My app needs milliseconds. Is there a problem with the way I'm using jQuery to bind and unbind the timeupdate event? I tried using the jQuery-less approach with addEventListener but I couldn't get it to work. Thanks in advance, I would really love to know what's going wrong.

    Read the article

  • Creating HTML5 Offline Web Applications with ASP.NET

    - by Stephen Walther
    The goal of this blog entry is to describe how you can create HTML5 Offline Web Applications when building ASP.NET web applications. I describe the method that I used to create an offline Web application when building the JavaScript Reference application. You can read about the HTML5 Offline Web Application standard by visiting the following links: Offline Web Applications Firefox Offline Web Applications Safari Offline Web Applications Currently, the HTML5 Offline Web Applications feature works with all modern browsers with one important exception. You can use Offline Web Applications with Firefox, Chrome, and Safari (including iPhone Safari). Unfortunately, however, Internet Explorer does not support Offline Web Applications (not even IE 9). Why Build an HTML5 Offline Web Application? The official reason to build an Offline Web Application is so that you do not need to be connected to the Internet to use it. For example, you can use the JavaScript Reference Application when flying in an airplane, riding a subway, or hiding in a cave in Borneo. The JavaScript Reference Application works great on my iPhone even when I am completely disconnected from any network. The following screenshot shows the JavaScript Reference Application running on my iPhone when airplane mode is enabled (notice the little orange airplane):   Admittedly, it is becoming increasingly difficult to find locations where you can’t get Internet access. A second, and possibly better, reason to create Offline Web Applications is speed. An Offline Web Application must be downloaded only once. After it gets downloaded, all of the files required by your Web application (HTML, CSS, JavaScript, Image) are stored persistently on your computer. Think of Offline Web Applications as providing you with a super browser cache. Normally, when you cache files in a browser, the files are cached on a file-by-file basis. For each HTML, CSS, image, or JavaScript file, you specify how long the file should remain in the cache by setting cache headers. Unlike the normal browser caching mechanism, the HTML5 Offline Web Application cache is used to specify a caching policy for an entire set of files. You use a manifest file to list the files that you want to cache and these files are cached until the manifest is changed. Another advantage of using the HTML5 offline cache is that the HTML5 standard supports several JavaScript events and methods related to the offline cache. For example, you can be notified in your JavaScript code whenever the offline application has been updated. You can use JavaScript methods, such as the ApplicationCache.update() method, to update the cache programmatically. Creating the Manifest File The HTML5 Offline Cache uses a manifest file to determine the files that get cached. Here’s what the manifest file looks like for the JavaScript Reference application: CACHE MANIFEST # v30 Default.aspx # Standard Script Libraries Scripts/jquery-1.4.4.min.js Scripts/jquery-ui-1.8.7.custom.min.js Scripts/jquery.tmpl.min.js Scripts/json2.js # App Scripts App_Scripts/combine.js App_Scripts/combine.debug.js # Content (CSS & images) Content/default.css Content/logo.png Content/ui-lightness/jquery-ui-1.8.7.custom.css Content/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png Content/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png Content/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png Content/ui-lightness/images/ui-icons_222222_256x240.png Content/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png Content/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png Content/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png Content/ui-lightness/images/ui-icons_ffffff_256x240.png Content/ui-lightness/images/ui-icons_ef8c08_256x240.png Content/browsers/c8.png Content/browsers/es3.png Content/browsers/es5.png Content/browsers/ff3_6.png Content/browsers/ie8.png Content/browsers/ie9.png Content/browsers/sf5.png NETWORK: Services/EntryService.svc http://superexpert.com/resources/JavaScriptReference/ A Cache Manifest file always starts with the line of text Cache Manifest. In the manifest above, all of the CSS, image, and JavaScript files required by the JavaScript Reference application are listed. For example, the Default.aspx ASP.NET page, jQuery library, JQuery UI library, and several images are listed. Notice that you can add comments to a manifest by starting a line with the hash character (#). I use comments in the manifest above to group JavaScript and image files. Finally, notice that there is a NETWORK: section of the manifest. You list any file that you do not want to cache (any file that requires network access) in this section. In the manifest above, the NETWORK: section includes the URL for a WCF Service named EntryService.svc. This service is called to get the JavaScript entries displayed by the JavaScript Reference. There are two important things that you need to be aware of when using a manifest file. First, all relative URLs listed in a manifest are resolved relative to the manifest file. The URLs listed in the manifest above are all resolved relative to the root of the application because the manifest file is located in the application root. Second, whenever you make a change to the manifest file, browsers will download all of the files contained in the manifest (all of them). For example, if you add a new file to the manifest then any browser that supports the Offline Cache standard will detect the change in the manifest and download all of the files listed in the manifest automatically. If you make changes to files in the manifest (for example, modify a JavaScript file) then you need to make a change in the manifest file in order for the new version of the file to be downloaded. The standard way of updating a manifest file is to include a comment with a version number. The manifest above includes a # v30 comment. If you make a change to a file then you need to modify the comment to be # v31 in order for the new file to be downloaded. When Are Updated Files Downloaded? When you make changes to a manifest, the changes are not reflected the very next time you open the offline application in your web browser. Your web browser will download the updated files in the background. This can be very confusing when you are working with JavaScript files. If you make a change to a JavaScript file, and you have cached the application offline, then the changes to the JavaScript file won’t appear when you reload the application. The HTML5 standard includes new JavaScript events and methods that you can use to track changes and make changes to the Application Cache. You can use the ApplicationCache.update() method to initiate an update to the application cache and you can use the ApplicationCache.swapCache() method to switch to the latest version of a cached application. My heartfelt recommendation is that you do not enable your application for offline storage until after you finish writing your application code. Otherwise, debugging the application can become a very confusing experience. Offline Web Applications versus Local Storage Be careful to not confuse the HTML5 Offline Web Application feature and HTML5 Local Storage (aka DOM storage) feature. The JavaScript Reference Application uses both features. HTML5 Local Storage enables you to store key/value pairs persistently. Think of Local Storage as a super cookie. I describe how the JavaScript Reference Application uses Local Storage to store the database of JavaScript entries in a separate blog entry. Offline Web Applications enable you to store static files persistently. Think of Offline Web Applications as a super cache. Creating a Manifest File in an ASP.NET Application A manifest file must be served with the MIME type text/cache-manifest. In order to serve the JavaScript Reference manifest with the proper MIME type, I added two files to the JavaScript Reference Application project: Manifest.txt – This text file contains the actual manifest file. Manifest.ashx – This generic handler sends the Manifest.txt file with the MIME type text/cache-manifest. Here’s the code for the generic handler: using System.Web; namespace JavaScriptReference { public class Manifest : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/cache-manifest"; context.Response.WriteFile(context.Server.MapPath("Manifest.txt")); } public bool IsReusable { get { return false; } } } } The Default.aspx file contains a reference to the manifest. The opening HTML tag in the Default.aspx file looks like this: <html manifest="Manifest.ashx"> Notice that the HTML tag contains a manifest attribute that points to the Manifest.ashx generic handler. Internet Explorer simply ignores this attribute. Every other modern browser will download the manifest when the Default.aspx page is requested. Seeing the Offline Web Application in Action The experience of using an HTML5 Web Application is different with different browsers. When you first open the JavaScript Reference application with Firefox, you get the following warning: Notice that you are provided with the choice of whether you want to use the application offline or not. Browsers other than Firefox, such as Chrome and Safari, do not provide you with this choice. Chrome and Safari will create an offline cache automatically. If you click the Allow button then Firefox will download all of the files listed in the manifest. You can view the files contained in the Firefox offline application cache by typing about:cache in the Firefox address bar: You can view the actual items being cached by clicking the List Cache Entries link: The Offline Web Application experience is different in the case of Google Chrome. You can view the entries in the offline cache by opening the Developer Tools (hit Shift+CTRL+I), selecting the Storage tab, and selecting Application Cache: Notice that you view the status of the Application Cache. In the screen shot above, the status is UNCACHED which means that the files listed in the manifest have not been downloaded and cached yet. The different possible values for the status are included in the HTML5 Offline Web Application standard: UNCACHED – The Application Cache has not been initialized. IDLE – The Application Cache is not currently being updated. CHECKING – The Application Cache is being fetched and checked for updates. DOWNLOADING – The files in the Application Cache are being updated. UPDATEREADY – There is a new version of the Application. OBSOLETE – The contents of the Application Cache are obsolete. Summary In this blog entry, I provided a description of how you can use the HTML5 Offline Web Application feature in the context of an ASP.NET application. I described how this feature is used with the JavaScript Reference Application to store the entire application on a user’s computer. By taking advantage of this new feature of the HTML5 standard, you can improve the performance of your ASP.NET web applications by requiring users of your web application to download your application once and only once. Furthermore, you can enable users to take advantage of your applications anywhere -- regardless of whether or not they are connected to the Internet.

    Read the article

< Previous Page | 6 7 8 9 10 11 12 13 14 15 16 17  | Next Page >