日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

CreateJS-SoundJS翻译

發布時間:2023/12/14 javascript 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CreateJS-SoundJS翻译 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SoundJSSoundJS庫管理網絡上的音頻播放。它通過 '抽象出實際音頻實現' 的插件來工作,所以可能在任何平臺上播放的,而不必了解聲音播放的機制。使用SoundJS,可以使用 'Sound' 類的公共API。該API是:安裝音頻播放插件注冊(和預加載)聲音創建和播放聲音主音量、靜音以及一次性停止對所有聲音的控制控制聲音播放聲音,會創建 'AbstractSoundInstance' 實例,該實例可以單獨進行控制。暫停、恢復、搜索、停止聲音控制聲音的音量、靜音、聲像監聽聲音實例的事件,播放完成、循環、失敗時觸發通知示例: createjs.Sound.alternateExtensions = ['mp3'];createjs.Sound.on('fileload', this.loadHandler, this);createjs.Sound.resisterSound('path/sound/聲音.ogg', 'sound1');function loadHandler(event){// 每個注冊的聲音都會觸發var instance = createjs.Sound.play('sound1'); // 播放指定id的聲音(這里是上面注冊的 'sound1'),也可以使用 '聲音的全路徑' 或 'event.src'instance.on('complete', this.handleComplete, this);instance.volume = 0.5;}瀏覽器支持:音頻可以在支持 'Web Audio'(http://caniuse.com/audio-api) 或 'HTMLAudioElement'(http://caniuse.com/audio) 的瀏覽器上使用。Flash fallback可用于任何支持Flash播放器的瀏覽器,Cordova插件可用于任何支持 Cordova.Media 的web視圖。不支持IE8和更早版本,及時是 Flash fallback 也不支持。要支持以前的瀏覽器,可使用舊版本的SoundJS(0.5.2之前)大致看了下提供的類文件,有分類特性:// Sound庫其他SoundJSSoundAudioSpritePlayPropsConfig// 2個基類AbstractPluginAbstractSoundInstance// 上面提到的4個不同的插件WebAudioLoaderWebAudioPluginWebAudioSoundInstanceHTMLAudioPluginHTMLAudioSoundInstanceHTMLAudioTagPoolFlashAudioLoaderFlashAudioPluginFlashAudioSoundInstanceCordovaAudioLoaderCordovaAudioPluginCordovaAudioSoundInstance// 額外的事件對象ErrorEvent// CreateJS 套件里公共部分EventEventDispatcherUtility Methods1.SoundJSSoundJS 是一個靜態類,可獲取類庫的具體信息,例如:庫的版本、構建日期等。SoundJS類已經被重命名為 Sound。查看 'Sound' 獲取更多信息2.SoundSound類是公共API,用于創建聲音,控制整體聲音級別,以及管理插件。該類上所有的聲音API都是靜態的。注冊和預加載播放聲音前,必須先進行注冊。可以使用 'registerSound' 方法,注冊多個聲音使用 'registerSounds' 方法。如果在 使用 'play' 方法來嘗試播放它,或使用 'createInstance' 來創建它 之前,沒有注冊聲音,將會自動注冊聲音源,但是播放將會失敗,因為聲音源還未準備好。如果使用 'PreloadJS',則會在預加載聲音時,自動處理聲音注冊。建議預先加載聲音,不管是通過內部的注冊函數還是外部的 'PreloadJS',以便在使用聲音時準備就緒。播放在聲音注冊和預加載后,立即播放聲音,使用 'play' 方法。該方法返回一個 'AbstractSoundInstance' 實例,可以用來暫停、恢復、靜音等操作。可以查看 'AbstractSoundInstance' 獲取更多信息。插件默認情況下,使用 'WebAudioPlugin' 或 'HTMLAudioPlugin' 插件(當可用時),但開發人員可以更改插件優先級,或添加新的插件(例如:提供的 'FlashAudioPlugin' 插件)。安裝插件,或指定不同的插件順序,查看 'Sound/intallPlugins'。示例:createjs.FlashAudioPlugin.swfPath = '../src/flashaudio';createjs.Sound.registerPlugins([createjs.WebAudioPlugin, createjs.FlashAudioPlugin]);createjs.Sound.alternateExtensions(['mp3']);createjs.Sound.on('fileload', this.loadHandler, this);createjs.Sound.registerSound('path/sound/聲音.ogg', 'sound1');function loadHandler(event){// 每個注冊的聲音都會觸發var instance = createjs.Sound.play('sound1'); // 播放指定id的聲音(這里是上面注冊的 'sound1'),也可以使用 '聲音的全路徑' 或 'event.src'instance.on('complete', this.handleComplete, this);instance.volume = 0.5;}可以在 'registerSound' 的 'data' 參數中,指定 '同一聲音同時播放的最大實例數'。注意:如果未置頂,則會使用默認的最大限制數。目前 'HTMLAudioPlugin' 默認限制為2,而 'WebAudioPlugin' 和 'FlashAudioPlugin' 默認限制為100。createjs.Sound.registerSound('聲音.mp3', 'sound1', 4);'Sound' 可以作為 'PreloadJS' 插件使用,以幫助正確預加載音頻。通過 'PreloadJS' 預加載的音頻,會自動注冊到 'Sound' 類。當音頻未預加載時,'Sound' 將自動執行內部加載。因此,如果音頻未完成加載,可能會在第一次播放時,播放失敗。使用 'fileload' 事件可以確定,聲音什么時候完成的預加載。建議在播放所有聲音前,預先加載。var queue = new createjs.LoadQueue();queue.installPlugin(createjs.Sound);音頻精靈(audio sprites - 音頻雪碧圖)從0.6.0版本后,'SoundJS' 增加了對 'AudioSprite' 的支持。對不熟悉 '音頻精靈' 的人來說,'音頻精靈' 類似 'CSS精靈' 或 '精靈表單':多個音頻資源分組合并到單個文件中。示例:var assetsPath = './assets/';var sounds = [{src: 'MyAudioSprite.ogg', data: {audioSprite: [{id: 'sound1', startTime: 0, duration: 500},{id: 'sound2', startTime: 1000, duration: 400},{id: 'sound3', startTime: 1700, duration: 1000}]}}];createjs.Sound.alternateExtensions = ['mp3'];createjs.Sound.on('fileload', loadSound);createjs.Sound.registerSounds(sounds, assetsPath);// 加載完成后播放createjs.Sound.play('sound2');手機播放運行iOS的設備需要通過在用戶發起的事件(例如觸摸/點擊)中播放至少一個聲音來“解鎖”WebAudio上下文。 早期版本的SoundJS包含了一個“MobileSafe”示例,但SoundJS 0.6.2不再需要這個示例。1.在SoundJS 0.4.1及以上版本中,您可以初始化插件,也可以在用戶輸入事件的調用堆棧中使用playEmptySound方法手動解鎖音頻上下文2.在SoundJS 0.6.2及以上版本中,SoundJS將自動偵聽第一個文檔級別的“mousedown”和“touchend”事件,并解鎖WebAudio。這將繼續檢查這些事件,直到WebAudio上下文變為“解鎖”(從“暫?!弊優椤罢谶\行”)3.“mousedown”和“touchend”事件都可以用來在iOS9 +中解鎖音頻,“touchstart”事件可以在iOS8及更低版本中使用。當手勢被解釋為“點擊”時,“touchend”事件將僅在iOS9中起作用,所以如果用戶長按按鈕,它將不再起作用。4.當使用EaselJS Touch類時,由于MouseEvents被阻止,單擊畫布時,“mousedown”事件不會觸發,以確保只有觸摸事件觸發。為了解決這個問題,你可以依靠“touchend”,或者:1.將Touch類構造函數的allowDefault屬性設置為true(默認為false)。2.將EaselJS Stage上的preventSelection屬性設置為false。這些設置可能會改變您的應用程序的行為,不建議。加載備用路徑和無擴展文件'SoundJS' 支持加載備用路徑和無擴展文件,通過給 'src' 屬性,傳遞一個對象來代替字符串,該屬性是使用hash格式:{extension: 'path', extension2: 'path2'}。'SoundJS' 通過extension名,來判斷是否支持該格式的文件??梢詫⒉煌袷降奈募?#xff0c;存放到不同的目錄下,或CDN上。按順序依次嘗試是否支持該格式,一旦支持則停止檢測。對于 'SoundJS' 內部加載或通過 'PreloadJS' 加載,都有效。注意:播放需要一個 'id'示例:var sounds = {path: './audioPath/',manifest: [{id: 'cool', src: {mp3: 'mp3/聲音.mp3', ogg: 'ogg/聲音.ogg'}}]};已知的瀏覽器和操作系統問題不翻譯了,看文檔3.AudioSprite注意:AudioSprite不是一個類,但是它的用法很容易在文檔中被忽略,所以單獨提出來,可稱為快速參考。'音頻精靈' 很像 'CSS精靈' 或 圖像 '精靈表單':將多個音頻資源分組合并為一個文件。'音頻精靈' 可以解決某些瀏覽器的一次只能加載和播放一個聲音的限制。建議在音頻剪輯之間至少保持300ms的靜音,來處理HTML音頻標簽不準確的情況,以防止意外播放相鄰剪輯的音頻。音頻精靈的優點1.對于僅允許單個音頻實例的舊版瀏覽器和設備提供更強大的支持(如:iOS 5)。2.為IE9 audio標簽限制提供了解決方法,IE9 audio 標簽嚴格限制了一次可以加載多種不同的聲音。3.加載更快,將多次請求合并為一次。特別是在移動設備上,每個文件的網絡往返行程會有明顯延遲。音頻精靈的缺點1.使用HTML或Flash音頻時不能保證平滑的循環。如果需要平滑的循環,并且要支持非網絡音頻的瀏覽器,盡量避免使用 '音頻精靈'2.不能保證HTML音頻會立即播放,特別是第一次播放。在某些瀏覽器(chrome!),HTML音頻只能以當前下載速度加載,所以我們依靠 'canplaythrough' 事件,來確定音頻是否已加載。因為 '音頻精靈' 必須跳到前方,來播放特定的聲音,音頻可能還沒有完全下載下來。3.'音頻精靈' 共享同樣的核心資源,因此,如果有一個包含5個聲音的 '音頻精靈',并且被限制只能同時播放2個實例,就只能同時播放2個聲音。示例:createjs.Sound.initializeDefaultPlugins();var assetsPath = './assets/';var sounds = [{src: 'MyAudioSprite.ogg', data: {audioSprite: [{id: 'sound1', startTime: 0, duration: 500},{id: 'sound2', startTime: 1000, duration: 400},{id: 'sound3', startTime: 1700, duration: 1000}]}}];createjs.Sound.alternateExtensions = ['mp3'];createjs.Sound.on('fileload', loadSound);createjs.Sound.registerSounds(sounds, assetsPath);// 加載完成后播放createjs.Sound.play('sound2');當創建新的 'AbstractSoundInstance' 時,也可以通過設置 'startTime' 和 'duration' 來在線創建 '音頻精靈'createjs.Sound.play('MyAudioSprite', {startTime: 1000, duration: 400});優秀的 CreateJS社區 已經創建了一個工具來創建 '音頻精靈',在https://github.com/tonistiigi/audiosprite 查看源碼,以及 'jsfiddle'(http://jsfiddle.net/bharat_battu/g8fFP/12/) 將輸出轉換為 SoundJS 格式。4.PlayPropsConfigPlayPropsConfig 類,是一個存儲可選的播放屬性的類,以傳遞給 'Sound:play' 和 'AbstractSoundInstance:play' 調用??蛇x的播放屬性包括:interrupt - 如果已經播放了最大個數的聲音實例,如何中斷正在播放的具有相同資源的任意的音頻實例??蛇x值定義在 'Sound' 類的 'INTERRUPT_TYPE' 常量,默認由 'defaultInterruptBehavior' 定義。delay - 音頻開始播放的延遲時間,單位 'ms'offset - 音頻開始播放的偏移時間量,單位 'ms'loop - 音頻循環播放次數。默認是 '0-不循環', -1 - 無限循環volume - 聲音的音量,0-1之間。注意:主音量應用于單個音量pan - 聲音的左-右聲部(如果支持),在-1(左)和1(右)之間。startTime - 創建 '音頻精靈'(和 duration 一起使用) 開始播放和循環時的初始偏移量,單位 'ms' duration - 創建 '音頻精靈'(和 startTime 一起使用) 播放剪輯的時間量,單位 'ms' 示例:var props = new createjs.PlayPropsConfig().set({interrupt: createjs.Sound.INTERRUPT_ANY, loop: -1, volume: 0.5});createjs.Sound.play('聲音.mp3', props); // Sound:playmySoundInstance.play(props); // AbstractSoundInstance:play5.AbstractPlugin所有其他插件類的基類6.AbstractSoundInstance當調用 'Sound API' 的 'play' 或 'createInstance' 方法時,都會創建 'AbstractSoundInstance' 實例。根據當前活動插件(4種不同插件類型),返回 'AbstractSoundInstance' 實例,以供用戶后續控制示例:var myInstance = createjs.Sound.play('聲音.mp3');額外的附加參數,提供了一個快速方法,來決定如何播放聲音。請參閱 'Sound API' 的 'play' 方法,查看播放參數列表一旦創建了 'AbstractSoundInstance',就可以存儲一個直接通過 'AbstractSoundInstance' 控制音頻的引用。如果未存儲引用,'AbstractSoundInstance' 將播放它的音頻(和任何循環),然后從 'Sound' 類取消引用,標記為可清除,之后被垃圾回收清除。如果音頻播放已完成,簡單的調用 'play' 方法,將重建引用,來控制聲音。var myInstance = createjs.Sound.play('聲音.mp3', {loop: 2});myInstance.on('loop', handleLoop);function handleLoop(event){myInstance.volume = myInstance.volume * 0.5;}當聲音播放完成、循環播放或播放失敗,事件分發會通知事件監聽器var myInstance = createjs.Sound.play('聲音.mp3', {loop: 2});myInstance.on('complete', handleComplete);myInstance.on('loop', handleLoop);myInstance.on('failed', handleFailed);7.WebAudioLoader8.WebAudioPlugin9.WebAudioSoundInstance10.HTMLAudioPlugin11.HTMLAudioSoundInstance12.HTMLAudioTagPool13.FlashAudioLoader14.FlashAudioPlugin15.FlashAudioSoundInstance16.CordovaAudioLoader17.CordovaAudioPlugin18.CordovaAudioSoundInstance19.ErrorEvent通用錯誤事件,描述發生的錯誤,以及任何細節// 下面幾個,在 CreateJS 套件里是公共的 20.Event21.EventDispatcher22.Utility Methods

總結

以上是生活随笔為你收集整理的CreateJS-SoundJS翻译的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。