UNPKG

crossbrowdy

Version:

A Multimedia JavaScript framework to create real cross-platform and hybrid game engines, games, emulators, multimedia libraries and apps.

2,440 lines (893 loc) 401 kB
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>CrossBrowdy API documentation [printable] Class: CB_AudioFileCache</title> <!--[if lt IE 9]> <script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <link type="text/css" rel="stylesheet" href="styles/sunlight.default.css"> <link type="text/css" rel="stylesheet" href="styles/site.yeti.css"> </head> <body style="min-width:800px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"> <div class="navbar navbar-default navbar-fixed-top "> <div class="container"> <div class="navbar-header"> <a class="navbar-brand" href="index.html">CrossBrowdy API documentation [printable]</a> <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation"> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> </div> <div class="navbar-collapse collapse" id="topNavigation"> <ul class="nav navbar-nav"> <li class="dropdown"> <a href="namespaces.list.html" class="dropdown-toggle" data-toggle="dropdown">Namespaces<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="CB_Arrays.html">CB_Arrays</a></li><li><a href="CB_AudioDetector.html">CB_AudioDetector</a></li><li><a href="CB_Client.html">CB_Client</a></li><li><a href="CB_Collisions.html">CB_Collisions</a></li><li><a href="CB_Configuration.html">CB_Configuration</a></li><li><a href="CB_Configuration.CrossBase.html">CB_Configuration.CrossBase</a></li><li><a href="CB_Configuration.CrossBrowdy.html">CB_Configuration.CrossBrowdy</a></li><li><a href="CB_Controllers.html">CB_Controllers</a></li><li><a href="CB_Controllers_Proprietary.html">CB_Controllers_Proprietary</a></li><li><a href="CB_Controllers_Proprietary.WII.html">CB_Controllers_Proprietary.WII</a></li><li><a href="CB_Controllers_Proprietary.WII_U.html">CB_Controllers_Proprietary.WII_U</a></li><li><a href="CB_Device.html">CB_Device</a></li><li><a href="CB_Device.AmbientLight.html">CB_Device.AmbientLight</a></li><li><a href="CB_Device.Battery.html">CB_Device.Battery</a></li><li><a href="CB_Device.Location.html">CB_Device.Location</a></li><li><a href="CB_Device.Motion.html">CB_Device.Motion</a></li><li><a href="CB_Device.Orientation.html">CB_Device.Orientation</a></li><li><a href="CB_Device.Proximity.html">CB_Device.Proximity</a></li><li><a href="CB_Device.Vibration.html">CB_Device.Vibration</a></li><li><a href="CB_Elements.html">CB_Elements</a></li><li><a href="CB_Events.html">CB_Events</a></li><li><a href="CB_Keyboard.html">CB_Keyboard</a></li><li><a href="CB_Keyboard.chars.html">CB_Keyboard.chars</a></li><li><a href="CB_Keyboard.extended.html">CB_Keyboard.extended</a></li><li><a href="CB_Keyboard.keys.html">CB_Keyboard.keys</a></li><li><a href="CB_Modules.html">CB_Modules</a></li><li><a href="CB_Mouse.html">CB_Mouse</a></li><li><a href="CB_Mouse.CursorImage.html">CB_Mouse.CursorImage</a></li><li><a href="CB_Net.html">CB_Net</a></li><li><a href="CB_Net.Fetch.html">CB_Net.Fetch</a></li><li><a href="CB_Net.REST.html">CB_Net.REST</a></li><li><a href="CB_Net.Sockets.html">CB_Net.Sockets</a></li><li><a href="CB_Net.Sockets.SockJS.html">CB_Net.Sockets.SockJS</a></li><li><a href="CB_Net.XHR.html">CB_Net.XHR</a></li><li><a href="CB_Pointer.html">CB_Pointer</a></li><li><a href="CB_Screen.html">CB_Screen</a></li><li><a href="CB_Speaker.html">CB_Speaker</a></li><li><a href="CB_Touch.html">CB_Touch</a></li><li><a href="CB_baseSymbols.html">CB_baseSymbols</a></li> </ul> </li> <li class="dropdown"> <a href="classes.list.html" class="dropdown-toggle" data-toggle="dropdown">Classes<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="CB_AudioFile.html">CB_AudioFile</a></li><li><a href="CB_AudioFileCache.html">CB_AudioFileCache</a></li><li><a href="CB_AudioFileSprites.html">CB_AudioFileSprites</a></li><li><a href="CB_AudioFileSpritesPool.html">CB_AudioFileSpritesPool</a></li><li><a href="CB_AudioFile_API.AAPI.html">CB_AudioFile_API.AAPI</a></li><li><a href="CB_AudioFile_API.ACMP.html">CB_AudioFile_API.ACMP</a></li><li><a href="CB_AudioFile_API.SM2.html">CB_AudioFile_API.SM2</a></li><li><a href="CB_AudioFile_API.WAAPI.html">CB_AudioFile_API.WAAPI</a></li><li><a href="CB_Canvas.html">CB_Canvas</a></li><li><a href="CB_GraphicSprites.html">CB_GraphicSprites</a></li><li><a href="CB_GraphicSpritesScene.html">CB_GraphicSpritesScene</a></li> </ul> </li> <li class="dropdown"> <a href="global.html" class="dropdown-toggle" data-toggle="dropdown">Global<b class="caret"></b></a> <ul class="dropdown-menu inline"> <li><a href="global.html#CB_BASE_NAME">CB_BASE_NAME</a></li><li><a href="global.html#CB_CREDITS_DEFAULT">CB_CREDITS_DEFAULT</a></li><li><a href="global.html#CB_NAME">CB_NAME</a></li><li><a href="global.html#CB_OPTIONS">CB_OPTIONS</a></li><li><a href="global.html#CB_VERSION">CB_VERSION</a></li><li><a href="global.html#CB_addCredits">CB_addCredits</a></li><li><a href="global.html#CB_baseToBase">CB_baseToBase</a></li><li><a href="global.html#CB_baseToInt">CB_baseToInt</a></li><li><a href="global.html#CB_br2nl">CB_br2nl</a></li><li><a href="global.html#CB_brToNl">CB_brToNl</a></li><li><a href="global.html#CB_combineArraysOrObjects">CB_combineArraysOrObjects</a></li><li><a href="global.html#CB_combineAutomatically">CB_combineAutomatically</a></li><li><a href="global.html#CB_combineJSON">CB_combineJSON</a></li><li><a href="global.html#CB_combineURIParameters">CB_combineURIParameters</a></li><li><a href="global.html#CB_combineURLParameters">CB_combineURLParameters</a></li><li><a href="global.html#CB_console">CB_console</a></li><li><a href="global.html#CB_copyObject">CB_copyObject</a></li><li><a href="global.html#CB_countDecimalDigits">CB_countDecimalDigits</a></li><li><a href="global.html#CB_countDecimalPart">CB_countDecimalPart</a></li><li><a href="global.html#CB_countDecimals">CB_countDecimals</a></li><li><a href="global.html#CB_countIntegerDigits">CB_countIntegerDigits</a></li><li><a href="global.html#CB_countIntegerPart">CB_countIntegerPart</a></li><li><a href="global.html#CB_credits">CB_credits</a></li><li><a href="global.html#CB_forEach">CB_forEach</a></li><li><a href="global.html#CB_forceString">CB_forceString</a></li><li><a href="global.html#CB_getBase64StringObject">CB_getBase64StringObject</a></li><li><a href="global.html#CB_getCookie">CB_getCookie</a></li><li><a href="global.html#CB_getDatum">CB_getDatum</a></li><li><a href="global.html#CB_getJSONPropertyValue">CB_getJSONPropertyValue</a></li><li><a href="global.html#CB_getLZStringObject">CB_getLZStringObject</a></li><li><a href="global.html#CB_getValueIndex">CB_getValueIndex</a></li><li><a href="global.html#CB_getValuePath">CB_getValuePath</a></li><li><a href="global.html#CB_includeJSFile">CB_includeJSFile</a></li><li><a href="global.html#CB_indexOf">CB_indexOf</a></li><li><a href="global.html#CB_init">CB_init</a></li><li><a href="global.html#CB_intToBase">CB_intToBase</a></li><li><a href="global.html#CB_isArray">CB_isArray</a></li><li><a href="global.html#CB_isEmail">CB_isEmail</a></li><li><a href="global.html#CB_isFileLocal">CB_isFileLocal</a></li><li><a href="global.html#CB_isString">CB_isString</a></li><li><a href="global.html#CB_lastIndexOf">CB_lastIndexOf</a></li><li><a href="global.html#CB_ltrim">CB_ltrim</a></li><li><a href="global.html#CB_nl2br">CB_nl2br</a></li><li><a href="global.html#CB_nlToBr">CB_nlToBr</a></li><li><a href="global.html#CB_numberFormat">CB_numberFormat</a></li><li><a href="global.html#CB_numberOfDecimalDigits">CB_numberOfDecimalDigits</a></li><li><a href="global.html#CB_numberOfDecimals">CB_numberOfDecimals</a></li><li><a href="global.html#CB_numberOfIntegerDigits">CB_numberOfIntegerDigits</a></li><li><a href="global.html#CB_parseJSON">CB_parseJSON</a></li><li><a href="global.html#CB_parseString">CB_parseString</a></li><li><a href="global.html#CB_regularExpressionString">CB_regularExpressionString</a></li><li><a href="global.html#CB_renderString">CB_renderString</a></li><li><a href="global.html#CB_replaceAll">CB_replaceAll</a></li><li><a href="global.html#CB_rtrim">CB_rtrim</a></li><li><a href="global.html#CB_scriptPath">CB_scriptPath</a></li><li><a href="global.html#CB_scriptPathCalculate">CB_scriptPathCalculate</a></li><li><a href="global.html#CB_setCookie">CB_setCookie</a></li><li><a href="global.html#CB_setDatum">CB_setDatum</a></li><li><a href="global.html#CB_sizeOf">CB_sizeOf</a></li><li><a href="global.html#CB_sizeof">CB_sizeof</a></li><li><a href="global.html#CB_stringifyJSON">CB_stringifyJSON</a></li><li><a href="global.html#CB_symmetricCall">CB_symmetricCall</a></li><li><a href="global.html#CB_symmetricCallClear">CB_symmetricCallClear</a></li><li><a href="global.html#CB_this">CB_this</a></li><li><a href="global.html#CB_trim">CB_trim</a></li> </ul> </li> </ul> <div class="col-sm-3 col-md-3"> <form class="navbar-form" role="search"> <div class="input-group"> <input type="text" class="form-control" placeholder="Search" name="q" id="search-input"> <div class="input-group-btn"> <button class="btn btn-default" id="search-submit"><i class="glyphicon glyphicon-search"></i></button> </div> </div> </form> </div> </div> </div> </div> <div class="container" id="toc-content" style="width:100%;"> <div class="row" style="width:100%;"> <div class="col-md-8" style="width:85%;"> <div id="main"> <h1 class="page-title">Class: CB_AudioFileCache</h1> <section> <header> <h2> CB_AudioFileCache </h2> <div class="class-description"><p>Class to manage a cache with multiple <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects (they should be the same sound although they can be in different formats). This is not only useful for performance purposes but also for being able to play the same sound simultaneously and multiple times in different audio APIs and clients.</p></div> </header> <article> <div class="container-overview"> <hr> <dt> <h4 class="name" id="CB_AudioFileCache"><span class="type-signature"></span>new CB_AudioFileCache<span class="signature">( [dataObject])</span><span class="type-signature"> &rarr; {<a href="CB_AudioFileCache.html">CB_AudioFileCache</a>}</span></h4> </dt> <dd> <div class="description"> <p>The constructor is recommended to be called through a user-driven event (as onClick, onTouch, etc.), as some clients may need this at least the first time in order to be able to play the audio.</p> </div> <h5>Parameters:</h5> <table class="params table table-striped"> <thead> <tr> <th style="width:12%; min-width:110px;">Name</th> <th style="width:12%; min-width:110px;">Type</th> <th style="width:12%; min-width:110px;">Argument</th> <th class="last" style="min-width:310px;">Description</th> </tr> </thead> <tbody> <tr> <td class="name" style="width:12%; min-width:110px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"><code>dataObject</code></td> <td class="type" style="width:12%; min-width:110px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"> <span class="param-type"><a href="CB_AudioFileCache.html#.DATA_OBJECT">CB_AudioFileCache.DATA_OBJECT</a></span> </td> <td class="attributes" style="width:12%; min-width:110px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"> &lt;optional><br> </td> <td class="description last" style="min-width:310px; overflow-wrap:break-word; word-wrap:break-word; word-break:break-word; line-break:strict; hyphens:none; -webkit-hyphens:none; -moz-hyphens:none;"><p>Object with the desired data and options for the audio files cache.</p></td> </tr> </tbody> </table> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-56">line 56</a> </li> </ul> </dd> <dt class="tag-todo method-doc-label method-doc-details-label">To Do:</dt> <dd class="tag-todo"> <ul> <li>Do not allow to create one object with an "id" which has already been used (unless the value is undefined, null...).</li> <li>Method getCopy and static method filterProperties (similar to the ones from <a href="CB_GraphicSprites.html"><code>CB_GraphicSprites</code></a> and <a href="CB_GraphicSpritesScene.html"><code>CB_GraphicSpritesScene</code></a>).</li> </ul> </dd> </dl> <h5>Returns:</h5> <div class="param-desc"> <p>Returns a new <a href="CB_AudioFileCache.html"><code>CB_AudioFileCache</code></a> object.</p> </div> <dl> <dt> Type </dt> <dd> <span class="param-type"><a href="CB_AudioFileCache.html">CB_AudioFileCache</a></span> </dd> </dl> </dd> </div> <h3 class="subsection-title">Members</h3> <dl> <hr> <dt class="name" id="DEFAULT_VOLUME"> <h4 id="DEFAULT_VOLUME"><span class="type-signature">&lt;constant> </span>DEFAULT_VOLUME<span class="type-signature"> :number</span></h4> </dt> <dd> <div class="description"> <p>Keeps the default volume. If the <a href="CB_Configuration.CrossBase.html#.CB_AudioFile_AudioFileCache_USE_SPEAKER_VOLUME_AS_DEFAULT"><code>CB_Configuration.CrossBase.CB_AudioFile_AudioFileCache_USE_SPEAKER_VOLUME_AS_DEFAULT</code></a> property is true, this will keep the result of calling the <a href="CB_Speaker.html#.getVolume"><code>CB_Speaker.getVolume</code></a> function. Otherwise, it will use the value of the <a href="CB_Configuration.CrossBase.html#.CB_Speaker_DEFAULT_VOLUME"><code>CB_Configuration.CrossBase.CB_Speaker_DEFAULT_VOLUME</code></a> variable.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">number</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_Configuration.CrossBase.CB_AudioFile_AudioFileCache_USE_SPEAKER_VOLUME_AS_DEFAULT ? CB_Speaker.getVolume() : CB_Configuration.CrossBase.CB_Speaker_DEFAULT_VOLUME</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-68">line 68</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="URIs"> <h4 id="URIs"><span class="type-signature">&lt;readonly> </span>URIs<span class="type-signature"> :<a href="CB_AudioFileCache.html#.URIS_OBJECT">CB_AudioFileCache.URIS_OBJECT</a></span></h4> </dt> <dd> <div class="description"> <p>Object whose property names audio formats and their value is an array of strings with the URIs (audio file paths or audio data URIs) of the audio files in order of preference. The more audio formats and URIs provided the better, as it will help to maximize the compatibility with as many clients as possible (as some audio APIs and client just support some formats, or use absolute paths instead of relative ones, etc.). Even with different formats, all provided URIs should belong to the same audio (this means same sound or same music, with same length, etc.). NOTE: Only some clients with some audio APIs will support data URIs. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type"><a href="CB_AudioFileCache.html#.URIS_OBJECT">CB_AudioFileCache.URIS_OBJECT</a></span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-113">line 113</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="audioFiles"> <h4 id="audioFiles"><span class="type-signature">&lt;readonly> </span>audioFiles<span class="type-signature"> :array</span></h4> </dt> <dd> <div class="description"> <p>Numeric array containing all the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects created internally. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">array</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>[]</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-221">line 221</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="audioFilesCreated"> <h4 id="audioFilesCreated"><span class="type-signature">&lt;readonly> </span>audioFilesCreated<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Total number of <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects created internally (optimization purposes, to avoid using <a href="CB_AudioFileCache.html#audioFiles"><code>CB_AudioFileCache#audioFiles</code></a>.length). Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-230">line 230</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="audioFilesFree"> <h4 id="audioFilesFree"><span class="type-signature">&lt;readonly> </span>audioFilesFree<span class="type-signature"> :array</span></h4> </dt> <dd> <div class="description"> <p>Stack that stores the indexes (belonged to the <a href="CB_AudioFileCache.html#audioFiles"><code>CB_AudioFileCache#audioFiles</code></a> array) of the free <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">array</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>[]</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-239">line 239</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="audioFilesFreePointer"> <h4 id="audioFilesFreePointer"><span class="type-signature">&lt;readonly> </span>audioFilesFreePointer<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Pointer for the <a href="CB_AudioFileCache.html#audioFilesFree"><code>CB_AudioFileCache#audioFilesFree</code></a> stack (for optimization purposes). Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-248">line 248</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="checkManually"> <h4 id="checkManually"><span class="type-signature">&lt;readonly> </span>checkManually<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> <p>Tells whether the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects must be checked automatically or not (manually). Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.checkManually_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-167">line 167</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="checkManuallyOnCheckingFailed"> <h4 id="checkManuallyOnCheckingFailed"><span class="type-signature">&lt;readonly> </span>checkManuallyOnCheckingFailed<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> <p>Tells whether the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects must be checked automatically or not (manually) when checking one has failed and tries to reload it. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.checkManuallyOnCheckingFailed_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-194">line 194</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="checkManuallyOnNeededCreated"> <h4 id="checkManuallyOnNeededCreated"><span class="type-signature">&lt;readonly> </span>checkManuallyOnNeededCreated<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> <p>Tells whether the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects must be checked automatically or not (manually) when creates a new <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> object needed. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.checkManuallyOnNeededCreated_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-176">line 176</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="checkManuallyOnPlayingFailed"> <h4 id="checkManuallyOnPlayingFailed"><span class="type-signature">&lt;readonly> </span>checkManuallyOnPlayingFailed<span class="type-signature"> :boolean</span></h4> </dt> <dd> <div class="description"> <p>Tells whether the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects must be checked automatically or not (manually) when playing one has failed and tries to reload it. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">boolean</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.checkManuallyOnPlayingFailed_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-185">line 185</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="duration"> <h4 id="duration"><span class="type-signature">&lt;readonly> </span>duration<span class="type-signature"> :number</span></h4> </dt> <dd> <div class="description"> <p>Stores the minimum duration found among all the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">number</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>0</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-266">line 266</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="durationMaximum"> <h4 id="durationMaximum"><span class="type-signature">&lt;readonly> </span>durationMaximum<span class="type-signature"> :number</span></h4> </dt> <dd> <div class="description"> <p>Stores the maximum duration found among all the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">number</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>0</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-275">line 275</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="id"> <h4 id="id"><span class="type-signature">&lt;readonly> </span>id<span class="type-signature"> :string</span></h4> </dt> <dd> <div class="description"> <p>Stores the identifier for the audio files cache.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">string</span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-87">line 87</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="maximumAudioFiles"> <h4 id="maximumAudioFiles"><span class="type-signature">&lt;readonly> </span>maximumAudioFiles<span class="type-signature"> :integer|null</span></h4> </dt> <dd> <div class="description"> <p>Maximum <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects that are to be created internally. If it is set to null, there will not be a maximum (it will be unlimited). If an integer is provided, it must be the same number or greater than the value set in the <a href="CB_AudioFileCache.html#minimumAudioFiles"><code>CB_AudioFileCache#minimumAudioFiles</code></a> property, allowing 1 minimum. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> | <span class="param-type">null</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.maximumAudioFiles_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-131">line 131</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="minimumAudioFiles"> <h4 id="minimumAudioFiles"><span class="type-signature">&lt;readonly> </span>minimumAudioFiles<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Minimum <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects to create internally. It must be an integer being 1 the minimum. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.minimumAudioFiles_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-122">line 122</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="minimumAudioFilesFree"> <h4 id="minimumAudioFilesFree"><span class="type-signature">&lt;readonly> </span>minimumAudioFilesFree<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>New <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects will be created internally when the number of free <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects reaches this limit. It must be an integer being 0 (zero) the minimum. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>parseInt(<a href="CB_AudioFileCache.html#minimumAudioFiles"><code>CB_AudioFileCache#minimumAudioFiles</code></a> * 0.25 + 0.5)</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-140">line 140</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="newAudioFilesWhenNeeded"> <h4 id="newAudioFilesWhenNeeded"><span class="type-signature">&lt;readonly> </span>newAudioFilesWhenNeeded<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Number of new <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects to create internally when the minimum limit of free <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects (<a href="CB_AudioFileCache.html#minimumAudioFilesFree"><code>CB_AudioFileCache#minimumAudioFilesFree</code></a>) is reached. It must be an integer being 0 (zero) the minimum. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>Math.min(parseInt(<a href="CB_AudioFileCache.html#minimumAudioFiles"><code>CB_AudioFileCache#minimumAudioFiles</code></a> * 0.1 + 0.5), 1)</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-149">line 149</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="onError"> <h4 id="onError"><span class="type-signature">&lt;readonly> </span>onError<span class="type-signature"> :function</span></h4> </dt> <dd> <div class="description"> <p>Desired function to be called when any kind of error happens. The first and unique parameter will be a string with the error description (if it could be determined), being &quot;this&quot; the current <a href="CB_AudioFileCache.html"><code>CB_AudioFileCache</code></a> object. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">function</span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-212">line 212</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="onLoad"> <h4 id="onLoad"><span class="type-signature">&lt;readonly> </span>onLoad<span class="type-signature"> :function</span></h4> </dt> <dd> <div class="description"> <p>Desired function to be called once the cache has been loaded. The first and unique parameter will be an integer with the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> objects that still need to be checked, if any, being &quot;this&quot; the current <a href="CB_AudioFileCache.html"><code>CB_AudioFileCache</code></a> object. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">function</span> </li> </ul> <dl class="details"> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-203">line 203</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="preferredAPIs"> <h4 id="preferredAPIs"><span class="type-signature">&lt;readonly> </span>preferredAPIs<span class="type-signature"> :array</span></h4> </dt> <dd> <div class="description"> <p>Stores an array of strings with the preferred audio API or audio APIs, in order of preference. Possible audio APIs are &quot;WAAPI&quot; (<a href="https://developer.mozilla.org/en-US/docs/Web/API/Web_Audio_API">HTML5 Web Audio API</a>), &quot;SM2&quot; (<a href="http://schillmania.com/projects/soundmanager2/">SoundManager 2</a>), &quot;ACMP&quot; (<a href="https://github.com/apache/cordova-plugin-media">Apache Cordova Media Plugin</a>) or &quot;AAPI&quot; (<a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/audio">HTML5 Audio API</a>). Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">array</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_Configuration.CrossBase.CB_AudioFileCache_PREFERRED_AUDIO_APIS</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-96">line 96</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="preferredFormats"> <h4 id="preferredFormats"><span class="type-signature">&lt;readonly> </span>preferredFormats<span class="type-signature"> :array</span></h4> </dt> <dd> <div class="description"> <p>Stores an array of strings with the preferred audio format or audio formats (they can include just the format as 'audio/ogg' or also the codec as for example 'audio/ogg; codecs=&quot;vorbis&quot;'), in order of preference. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">array</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_Configuration.CrossBase.CB_AudioFileCache_PREFERRED_AUDIO_FORMATS</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-105">line 105</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="retries"> <h4 id="retries"><span class="type-signature">&lt;readonly> </span>retries<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Number of retries to try to load a <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> object internally before trying to load the next possible one internally (if any). It must be an integer being 0 the minimum. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>CB_AudioFileCache.retries_DEFAULT</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-158">line 158</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="soundInstancesQueued"> <h4 id="soundInstancesQueued"><span class="type-signature">&lt;readonly> </span>soundInstancesQueued<span class="type-signature"> :Object</span></h4> </dt> <dd> <div class="description"> <p>Object with sound instance identifiers (integers created by the <a href="CB_AudioFileCache.html#play"><code>CB_AudioFileCache#play</code></a> method) which are going to play (this way we can cancel the sound before it starts playing). Each property name is the identifier of the sound instance and the value will be an object with &quot;cancelled&quot; (boolean, to know whether the sound instance was cancelled or not) and &quot;object&quot; (containing the <a href="CB_AudioFile.html"><code>CB_AudioFile</code></a> object used) properties. Internal usage only recommended.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">Object</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>{}</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-257">line 257</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id="status"> <h4 id="status"><span class="type-signature">&lt;readonly> </span>status<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Tells whether the cache is unloaded (<a href="CB_AudioFileCache.html#.UNLOADED"><code>CB_AudioFileCache.UNLOADED</code></a>), loading (<a href="CB_AudioFileCache.html#.LOADING"><code>CB_AudioFileCache.LOADING</code></a>), unchecked (<a href="CB_AudioFileCache.html#.UNCHECKED"><code>CB_AudioFileCache.UNCHECKED</code></a>), checking (<a href="CB_AudioFileCache.html#.CHECKING"><code>CB_AudioFileCache.CHECKING</code></a>), loaded (<a href="CB_AudioFileCache.html#.LOADED"><code>CB_AudioFileCache.LOADED</code></a>), failed (<a href="CB_AudioFileCache.html#.FAILED"><code>CB_AudioFileCache.FAILED</code></a>) or aborted (<a href="CB_AudioFileCache.html#.ABORTED"><code>CB_AudioFileCache.ABORTED</code></a>).</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li><a href="CB_AudioFileCache.html#.UNLOADED"><code>CB_AudioFileCache.UNLOADED</code></a></li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd class="tag-source"> <ul class="dummy"> <li> <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html">CrossBase/audiovisual/audio/CB_AudioFileCache.js</a>, <a href="CrossBase_audiovisual_audio_CB_AudioFileCache.js.html#sunlight-1-line-71">line 71</a> </li> </ul> </dd> </dl> </dd> <hr> <dt class="name" id=".ABORTED"> <h4 id=".ABORTED"><span class="type-signature">&lt;static, constant> </span>ABORTED<span class="type-signature"> :integer</span></h4> </dt> <dd> <div class="description"> <p>Status value for an audio file cache which has been aborted. This will happen when the audio file cache has been destroyed with the <a href="CB_AudioFileCache.html#destructor"><code>CB_AudioFileCache#destructor</code></a> method. Can be used to compare the value returned by the <a href="CB_AudioFileCache.html#getStatus"><code>CB_AudioFileCache#getStatus</code></a> method. Recommended for internal usage only.</p> </div> <h5>Type:</h5> <ul> <li> <span class="param-type">integer</span> </li> </ul> <dl class="details"> <dt class="tag-default method-doc-label method-doc-details-label">Default Value:</dt> <dd class="tag-default"> <ul class="dummy"> <li>6</li> </ul> </dd> <dt class="tag-source method-doc-label method-doc-details-label">Source:</dt> <dd cl