JQuery播放器代理--IE下支持wma格式
生活随笔
收集整理的這篇文章主要介紹了
JQuery播放器代理--IE下支持wma格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Jplayer代理類
??1/**//**
??2*
??3*?Media?代理
??4*?@param?Object?p_play:播放器
??5*/
??6var?media_player_proxy?=?function(p_play){
??7????var?_play?=?p_play;
??8????var?_progress_change;
??9????var?_sound_complete;
?10????
?11????var?progress_change?=?function(){
?12????????if(_progress_change){
?13????????????//進度改變事件
?14????????????//lp:已下載百分數;?ppr:;?ppa:已播放百分數?pt:播放時間;?tt:總時間
?15????????????var?lp?=?_play.network.downloadProgress;
?16????????????var?ppr;
?17????????????if(_play.playState?==?3){
?18????????????????var?ppa?=?Number(_play.controls.currentPosition)?/?Number(_play.currentMedia.duration)?*?100;
?19????????????????var?pt?=?Number(_play.controls.currentPosition)?*?1000;
?20????????????????var?tt?=?Number(_play.currentMedia.duration)?*?1000;
?21????????????????_progress_change(lp,ppr,ppa,pt,tt);
?22???????????????
?23????????????????if(Number(_play.currentMedia.duration?-?_play.controls.currentPosition)?<?0.3){
?24?????????????????????
?25????????????????????if(_sound_complete){
?26????????????????????????_sound_complete();
?27????????????????????}
?28????????????????}
?29????????????}
?30????????}
?31????}
?32????//改變路徑(私)
?33????var?change?=?function(p_url){
?34????????_play.url?=?p_url;
?35????????_play.controls.play();
?36????}
?37????
?38????//播放
?39????this.play?=?function(){
?40????????_play.controls.play();
?41????},
?42????//改變并播放
?43????this.changeAndPlay?=?function(p_url){
?44????????change(p_url);
?45????????_play.controls.play();
?46????}
?47????//暫停
?48????this.pause?=?function(){
?49????????_play.controls.pause();?
?50????},
?51????//停止
?52????this.stop?=?function(){
?53????????_play.controls.stop();?
?54????},
?55????//設置音量
?56????this.volume?=?function(p_value){
?57????????_play.settings.volume?=?p_value
?58????},
?59????//設置進度
?60????this.playHead?=?function(p_num){
?61????????//p_num?百分比
?62????????_play.controls.currentPosition?=?Math.ceil(p_num?/?100?*?_play.currentMedia.duration);????
?63????????progress_change();
?64????},
?65????//進度改變事件
?66????this.onProgressChange?=?function(p_handler){
?67????????_progress_change?=?p_handler;
?68????},
?69????//播放完成事件
?70????this.onSoundComplete?=?function(p_handler){
?71????????_sound_complete?=?p_handler;
?72????},
?73????//播放加載事件
?74????this.mPlayer?=?function(p_obj){
?75????????if(p_obj){
?76????????????p_obj.ready();
?77????????}
?78????????window.setInterval(progress_change,100);
?79????}
?80}
?81
?82
?83var?player_proxy?=?function(){
?84????var?_datalist?=?[];????//音樂列表
?85????var?_btn_obj;????//按鈕對象
?86????var?_show_state?=?-1;????//-1:沒有音樂?0:正在播入?1:暫停中?2:已停止
?87????var?_progress_change;
?88????var?_player;
?89????var?_play_index?=?-1;????//播放序號
?90????var?_volume?=?50;????//默認音量
?91????var?_play_handler;
?92????var?_is_no_sound?=?false;
?93????var?_play_pattern?=?2;?//播放模式?0:單曲循環;?1:順序;?2:循環;?3:隨機
?94????var?_data_change_handler;????//單樂數據改變事件
?95????
?96????//根據序號播放歌曲
?97????var?play_index?=?function(index){
?98????????if(_datalist.length?>?0){
?99????????????var?url?=?_datalist[index]["filepath"];
100????????????_player.changeAndPlay(url);
101????????????_play_index?=?index;
102????????????if(_play_handler){
103????????????????_play_handler(_datalist[index]);
104????????????}
105????????}
106????}
107????
108????//播放第一首
109????var?play_first?=?function(){
110????????if(_datalist.length?>?0){
111????????????play_index(0);
112????????}
113????}
114????
115????//播放下一首
116????var?play_next?=?function(){
117????????var?n?=?get_play_index_num();
118????????if(n?<?_datalist.length){
119????????????play_index(n);
120????????}
121????????else{
122????????????play_index(0);
123????????}
124????}
125????
126????//播放上一首
127????var?play_previous?=?function(){
128????????var?n?=?get_play_index_num(true);
129????????if(n?>=?0){
130????????????play_index(n);
131????????}
132????}
133????
134????var?show_play_btn?=?function(){
135????????$("#"?+?_btn_obj["play"]).hide();
136????????$("#"?+?_btn_obj["pause"]).show();
137????????$("#"?+?_btn_obj["stop"]).show();
138????}
139????
140????var?show_pause_btn?=?function(){
141????????$("#"?+?_btn_obj["play"]).show();
142????????$("#"?+?_btn_obj["pause"]).hide();
143????????$("#"?+?_btn_obj["stop"]).show();
144????}
145????
146????var?show_stop_btn?=?function(){
147????????$("#"?+?_btn_obj["play"]).show();
148????????$("#"?+?_btn_obj["pause"]).hide();
149????}
150????
151????//驗證Key是否存在
152????var?check_key?=?function(key){
153????????for(var?i?=?0;?i?<?_datalist.length;i++){
154????????????var?item?=?_datalist[i];
155????????????if(item.key?==?key){
156????????????????return?true;
157????????????}
158????????}
159????????return?false;
160????}
161????
162????var?get_play_index_num?=?function(is_pre){
163????????var?i?=?_play_index;
164????????if(is_pre){
165????????????switch(_play_pattern){
166????????????????case?0:
167????????????????????break;
168????????????????case?1:
169????????????????????i-=1;
170????????????????????break;
171????????????????case?2:
172????????????????????i-=1;
173????????????????????if(i?<?0){
174????????????????????????i?=?0;
175????????????????????}
176????????????????????play_index(i);
177????????????????????break;
178????????????????case?3:
179????????????????????i?=?parseInt(Math.random()*(_datalist.length-1));
180????????????????????break;
181????????????}
182????????}
183????????else{
184????????????switch(_play_pattern){
185????????????????case?0:
186????????????????????break;
187????????????????case?1:
188????????????????????i+=1;
189????????????????????break;
190????????????????case?2:
191????????????????????i+=1;
192????????????????????if(i?>=?_datalist.length){
193????????????????????????i?=?0;
194????????????????????}
195????????????????????play_index(i);
196????????????????????break;
197????????????????case?3:
198????????????????????i?=?parseInt(Math.random()*(_datalist.length-1));
199????????????????????break;
200????????????}
201????????}
202????????return?i;
203????}
204????
205????//控制靜音狀態
206????this.control_sound?=?function(p_has){
207????????if(p_has?==?undefined){
208????????????return?_is_no_sound;
209????????}
210????????_is_no_sound?=?p_has;
211????????if(_is_no_sound){
212???????????????_player.volume(0);
213????????}else{
214????????????_player.volume(_volume);
215????????}
216????},
217????//播放進度事件
218????this.on_progress_change?=?function(fun){
219????????if(_progress_change){
220????????????_progress_change?=?function(){
221????????????????_progress_change();
222????????????????fun();
223????????????}
224????????}
225????????else{
226????????????_progress_change?=?fun;
227????????}
228????},
229????//獲得正在播放歌曲對象
230????this.get_active_music?=?function(){
231????????if(_play_index?!=?-1?&&?_datalist.length?>?0){
232????????????return?_datalist[_play_index];
233????????}
234????????return?null;
235????},
236????//播放
237????this.play?=?function(p_key){
238????????for(var?i?=?0;?i?<?_datalist.length;?i++){
239????????????if(p_key?==?_datalist[i].key){
240????????????????play_index(i);
241????????????}
242????????}
243????},
244????this.play_first_music?=?function(){
245????????play_first();
246????},
247????//增加歌曲?必須字段?key:?音樂標識;?filepath:?路徑;?name:?音樂名
248????this.add_data?=?function(p_key,p_name,p_filepath){
249????????var?obj?=?{key:p_key,filepath:p_filepath,name:p_name};
250????????var?result_obj?=?[];
251????????var?is_add?=?false;
252????????if(!check_key(obj.key)){
253????????????_datalist.push(obj);
254????????????result_obj.push(obj);
255????????????is_add?=?true;
256????????}
257????????if(_data_change_handler){
258????????????_data_change_handler(is_add,result_obj);
259????????}
260????},
261????//增加歌曲(批量)
262????this.add_dataarr?=?function(p_obj_arr){
263????????var?is_add?=?false;
264????????var?result_obj?=?[];
265????????for(var?i?=?0;?i?<?p_obj_arr.length;?i++){
266????????????if(!check_key(p_obj_arr[i].key)){
267????????????????_datalist.push(p_obj_arr[i]);
268????????????????result_obj.push(p_obj_arr[i]);
269????????????????is_add?=?true;
270????????????}
271????????}
272????????if(_data_change_handler){
273????????????_data_change_handler(is_add,result_obj);
274????????}
275????????return?is_add;
276????},
277????//刪除歌曲
278????this.delete_data?=?function(p_key){
279????????var?index?=?-1;
280????????for(var?i?=?0;?i?<?_datalist.length;i++){
281????????????var?item?=?_datalist[i];
282????????????if(item.key?==?p_key){
283????????????????index?=?i;
284????????????}
285????????}
286????????var?key?=?-1;
287????????if(index?!=?-1){
288????????????key?=?_datalist[index].key;
289????????????if(_data_change_handler){
290????????????????_data_change_handler(true,[{key:key}],true);
291????????????}
292????????????_datalist.splice(index,1);
293????????}
294????????else{
295????????????if(_data_change_handler){
296????????????????_data_change_handler(false,{key:key},true);
297????????????}
298????????}
299????},
300????//綁定按鈕
301????this.bind_btn?=?function(obj){
302????????if(obj){
303????????????_btn_obj?=?obj;
304????????????$.each(_btn_obj,?function(i,?n){
305????????????????var?ele?=?$("#"?+?n);
306????????????????if(ele?==?undefined){
307????????????????????ele?=?$(n);
308????????????????}
309????????????????ele.click(function(){
310????????????????????switch(i){
311????????????????????????case?"play":????//播放
312????????????????????????????_player.play();
313????????????????????????????show_play_btn();
314????????????????????????????break;
315????????????????????????case?"pause":????//暫停
316????????????????????????????_player.pause();
317????????????????????????????show_pause_btn();
318????????????????????????????break;
319????????????????????????case?"stop":????//停止
320????????????????????????????_player.stop();
321????????????????????????????show_stop_btn()
322????????????????????????????break;
323????????????????????????case?"pre":????????//前一首
324????????????????????????????play_previous();
325????????????????????????????show_play_btn();
326????????????????????????????break;
327????????????????????????case?"next":????//下一首
328????????????????????????????play_next();
329????????????????????????????show_play_btn();
330????????????????????????????break;
331????????????????????}
332????????????????});
333????????????});?
334????????}
335????},
336????//設置音量
337????this.set_volume?=?function(p_num){
338????????if(p_num?==?undefined){
339????????????return?_volume;
340????????}
341????????_volume?=?p_num;
342????????_player.volume(_is_no_sound??0?:?_volume);
343????},
344????//設置進度
345????this.set_plan?=?function(p_num){
346????????_player.playHead(p_num);
347????},
348????//播放事件
349????this.set_play_call_back?=?function(p_fun){
350????????_play_handler?=?p_fun;
351????},
352????//設置列表改變事件
353????this.set_data_change_handler?=?function(p_fun){
354????????if(p_fun){
355????????????_data_change_handler?=?p_fun;
356????????}
357????},
358????//設置播放模式
359????this.pattern?=?function(p_pattern){
360????????if(p_pattern?==?undefined){
361????????????return?_play_pattern;
362????????}
363????????_play_pattern?=?p_pattern;
364????},
365????//獲取列表
366????this.get_datasource?=?function(){
367????????return?_datalist;
368????},
369????this.get_player?=?function(){
370????????return?_player;
371????},
372????//初始化
373????this.init?=?function(p_playId,p_play_callback){????????
374????????if($.browser.msie){
375????????????_player?=?new?media_player_proxy(document.getElementById(p_playId));
376????????}
377????????else{
378????????????_player?=?$("#"?+?p_playId);
379????????}
380????????if(p_play_callback){
381????????????_play_handler?=?p_play_callback;
382????????}
383????????if(_progress_change){
384????????????_player.onProgressChange(_progress_change);
385????????}
386????????_player.onSoundComplete(function(){
387????????????var?i?=?get_play_index_num();
388????????????play_index(i);
389????????});
390????????if($.browser.msie){
391?????????????_player.mPlayer({
392????????????????ready:?function?()?{
393????????????????????if(_play_index?==?-1){
394???????????????????????play_first();
395???????????????????????show_play_btn();
396????????????????????}
397????????????????????else{
398????????????????????????show_stop_btn();
399????????????????????}
400????????????????}
401????????????});
402????????}
403????????else{
404????????????_player.jPlayer({
405????????????????ready:?function?()?{
406????????????????????if(_play_index?==?-1){
407???????????????????????play_first();
408???????????????????????show_play_btn();
409????????????????????}
410????????????????????else{
411????????????????????????show_stop_btn();
412????????????????????}
413????????????????},
414????????????????swfPath:?URL_STATIC+"/media/music"
415????????????});
416????????}
417????}
418}
var?player?=?new?player_proxy();
player.bind_btn({//綁定BOTTON
????????play:"play_btn",??//播放
????????pause:"pause_btn",//暫停
????????stop:"stop_btn",//停止
????????pre:"pre_btn",//上一首
????????next:"next_btn"//下一首
?});
//音樂數據格式?[{key:音樂標識,?filepath:路徑,?name:音樂名}]
player.set_data_change_handler(function(issuccess,arr,isdel){??//改變音樂數據后,執行的函數
????//issuccess:?是否成功
????//arr:?音樂數據改變的列表
????//isdel:?true為刪除數據
});
player.on_progress_change(function(lp,ppr,ppa,pt,tt){??//進步改變后,執行的函數
????????//lp:已下載百分數;?ppr:;?ppa:已播放百分數?pt:播放時間;?tt:總時間
});
player.init(playId,play_callback);??//playId:放置播放器的層ID,IE下的HTML需要加入media?player?object?如以下HTML;?play_callback:?播放歌曲時,執行的函數
/*
<object?id="media_player"?width="350"?height="64"?classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
????????????????codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112"
????????????????align="baseline"?border="0"?standby="Loading?Microsoft?Windows?Media?Player?components"
????????????????type="application/x-oleobject">
????????????????<param?name="URL"?value="">
????????????????<param?name="autoStart"?value="true">
????????????????<param?name="invokeURLs"?value="false">
????????????????<param?name="playCount"?value="100">
????????????????<param?name="defaultFrame"?value="datawindow">
????????????</object>
*/
//除此之外,還提供了以下方法
player.control_sound(p_has);??//p_has:?true設置靜音,false開啟聲音?
player.add_dataarr(obj_arr);//增加歌曲(批量)?音樂數據:數組
??1/**//**
??2*
??3*?Media?代理
??4*?@param?Object?p_play:播放器
??5*/
??6var?media_player_proxy?=?function(p_play){
??7????var?_play?=?p_play;
??8????var?_progress_change;
??9????var?_sound_complete;
?10????
?11????var?progress_change?=?function(){
?12????????if(_progress_change){
?13????????????//進度改變事件
?14????????????//lp:已下載百分數;?ppr:;?ppa:已播放百分數?pt:播放時間;?tt:總時間
?15????????????var?lp?=?_play.network.downloadProgress;
?16????????????var?ppr;
?17????????????if(_play.playState?==?3){
?18????????????????var?ppa?=?Number(_play.controls.currentPosition)?/?Number(_play.currentMedia.duration)?*?100;
?19????????????????var?pt?=?Number(_play.controls.currentPosition)?*?1000;
?20????????????????var?tt?=?Number(_play.currentMedia.duration)?*?1000;
?21????????????????_progress_change(lp,ppr,ppa,pt,tt);
?22???????????????
?23????????????????if(Number(_play.currentMedia.duration?-?_play.controls.currentPosition)?<?0.3){
?24?????????????????????
?25????????????????????if(_sound_complete){
?26????????????????????????_sound_complete();
?27????????????????????}
?28????????????????}
?29????????????}
?30????????}
?31????}
?32????//改變路徑(私)
?33????var?change?=?function(p_url){
?34????????_play.url?=?p_url;
?35????????_play.controls.play();
?36????}
?37????
?38????//播放
?39????this.play?=?function(){
?40????????_play.controls.play();
?41????},
?42????//改變并播放
?43????this.changeAndPlay?=?function(p_url){
?44????????change(p_url);
?45????????_play.controls.play();
?46????}
?47????//暫停
?48????this.pause?=?function(){
?49????????_play.controls.pause();?
?50????},
?51????//停止
?52????this.stop?=?function(){
?53????????_play.controls.stop();?
?54????},
?55????//設置音量
?56????this.volume?=?function(p_value){
?57????????_play.settings.volume?=?p_value
?58????},
?59????//設置進度
?60????this.playHead?=?function(p_num){
?61????????//p_num?百分比
?62????????_play.controls.currentPosition?=?Math.ceil(p_num?/?100?*?_play.currentMedia.duration);????
?63????????progress_change();
?64????},
?65????//進度改變事件
?66????this.onProgressChange?=?function(p_handler){
?67????????_progress_change?=?p_handler;
?68????},
?69????//播放完成事件
?70????this.onSoundComplete?=?function(p_handler){
?71????????_sound_complete?=?p_handler;
?72????},
?73????//播放加載事件
?74????this.mPlayer?=?function(p_obj){
?75????????if(p_obj){
?76????????????p_obj.ready();
?77????????}
?78????????window.setInterval(progress_change,100);
?79????}
?80}
?81
?82
?83var?player_proxy?=?function(){
?84????var?_datalist?=?[];????//音樂列表
?85????var?_btn_obj;????//按鈕對象
?86????var?_show_state?=?-1;????//-1:沒有音樂?0:正在播入?1:暫停中?2:已停止
?87????var?_progress_change;
?88????var?_player;
?89????var?_play_index?=?-1;????//播放序號
?90????var?_volume?=?50;????//默認音量
?91????var?_play_handler;
?92????var?_is_no_sound?=?false;
?93????var?_play_pattern?=?2;?//播放模式?0:單曲循環;?1:順序;?2:循環;?3:隨機
?94????var?_data_change_handler;????//單樂數據改變事件
?95????
?96????//根據序號播放歌曲
?97????var?play_index?=?function(index){
?98????????if(_datalist.length?>?0){
?99????????????var?url?=?_datalist[index]["filepath"];
100????????????_player.changeAndPlay(url);
101????????????_play_index?=?index;
102????????????if(_play_handler){
103????????????????_play_handler(_datalist[index]);
104????????????}
105????????}
106????}
107????
108????//播放第一首
109????var?play_first?=?function(){
110????????if(_datalist.length?>?0){
111????????????play_index(0);
112????????}
113????}
114????
115????//播放下一首
116????var?play_next?=?function(){
117????????var?n?=?get_play_index_num();
118????????if(n?<?_datalist.length){
119????????????play_index(n);
120????????}
121????????else{
122????????????play_index(0);
123????????}
124????}
125????
126????//播放上一首
127????var?play_previous?=?function(){
128????????var?n?=?get_play_index_num(true);
129????????if(n?>=?0){
130????????????play_index(n);
131????????}
132????}
133????
134????var?show_play_btn?=?function(){
135????????$("#"?+?_btn_obj["play"]).hide();
136????????$("#"?+?_btn_obj["pause"]).show();
137????????$("#"?+?_btn_obj["stop"]).show();
138????}
139????
140????var?show_pause_btn?=?function(){
141????????$("#"?+?_btn_obj["play"]).show();
142????????$("#"?+?_btn_obj["pause"]).hide();
143????????$("#"?+?_btn_obj["stop"]).show();
144????}
145????
146????var?show_stop_btn?=?function(){
147????????$("#"?+?_btn_obj["play"]).show();
148????????$("#"?+?_btn_obj["pause"]).hide();
149????}
150????
151????//驗證Key是否存在
152????var?check_key?=?function(key){
153????????for(var?i?=?0;?i?<?_datalist.length;i++){
154????????????var?item?=?_datalist[i];
155????????????if(item.key?==?key){
156????????????????return?true;
157????????????}
158????????}
159????????return?false;
160????}
161????
162????var?get_play_index_num?=?function(is_pre){
163????????var?i?=?_play_index;
164????????if(is_pre){
165????????????switch(_play_pattern){
166????????????????case?0:
167????????????????????break;
168????????????????case?1:
169????????????????????i-=1;
170????????????????????break;
171????????????????case?2:
172????????????????????i-=1;
173????????????????????if(i?<?0){
174????????????????????????i?=?0;
175????????????????????}
176????????????????????play_index(i);
177????????????????????break;
178????????????????case?3:
179????????????????????i?=?parseInt(Math.random()*(_datalist.length-1));
180????????????????????break;
181????????????}
182????????}
183????????else{
184????????????switch(_play_pattern){
185????????????????case?0:
186????????????????????break;
187????????????????case?1:
188????????????????????i+=1;
189????????????????????break;
190????????????????case?2:
191????????????????????i+=1;
192????????????????????if(i?>=?_datalist.length){
193????????????????????????i?=?0;
194????????????????????}
195????????????????????play_index(i);
196????????????????????break;
197????????????????case?3:
198????????????????????i?=?parseInt(Math.random()*(_datalist.length-1));
199????????????????????break;
200????????????}
201????????}
202????????return?i;
203????}
204????
205????//控制靜音狀態
206????this.control_sound?=?function(p_has){
207????????if(p_has?==?undefined){
208????????????return?_is_no_sound;
209????????}
210????????_is_no_sound?=?p_has;
211????????if(_is_no_sound){
212???????????????_player.volume(0);
213????????}else{
214????????????_player.volume(_volume);
215????????}
216????},
217????//播放進度事件
218????this.on_progress_change?=?function(fun){
219????????if(_progress_change){
220????????????_progress_change?=?function(){
221????????????????_progress_change();
222????????????????fun();
223????????????}
224????????}
225????????else{
226????????????_progress_change?=?fun;
227????????}
228????},
229????//獲得正在播放歌曲對象
230????this.get_active_music?=?function(){
231????????if(_play_index?!=?-1?&&?_datalist.length?>?0){
232????????????return?_datalist[_play_index];
233????????}
234????????return?null;
235????},
236????//播放
237????this.play?=?function(p_key){
238????????for(var?i?=?0;?i?<?_datalist.length;?i++){
239????????????if(p_key?==?_datalist[i].key){
240????????????????play_index(i);
241????????????}
242????????}
243????},
244????this.play_first_music?=?function(){
245????????play_first();
246????},
247????//增加歌曲?必須字段?key:?音樂標識;?filepath:?路徑;?name:?音樂名
248????this.add_data?=?function(p_key,p_name,p_filepath){
249????????var?obj?=?{key:p_key,filepath:p_filepath,name:p_name};
250????????var?result_obj?=?[];
251????????var?is_add?=?false;
252????????if(!check_key(obj.key)){
253????????????_datalist.push(obj);
254????????????result_obj.push(obj);
255????????????is_add?=?true;
256????????}
257????????if(_data_change_handler){
258????????????_data_change_handler(is_add,result_obj);
259????????}
260????},
261????//增加歌曲(批量)
262????this.add_dataarr?=?function(p_obj_arr){
263????????var?is_add?=?false;
264????????var?result_obj?=?[];
265????????for(var?i?=?0;?i?<?p_obj_arr.length;?i++){
266????????????if(!check_key(p_obj_arr[i].key)){
267????????????????_datalist.push(p_obj_arr[i]);
268????????????????result_obj.push(p_obj_arr[i]);
269????????????????is_add?=?true;
270????????????}
271????????}
272????????if(_data_change_handler){
273????????????_data_change_handler(is_add,result_obj);
274????????}
275????????return?is_add;
276????},
277????//刪除歌曲
278????this.delete_data?=?function(p_key){
279????????var?index?=?-1;
280????????for(var?i?=?0;?i?<?_datalist.length;i++){
281????????????var?item?=?_datalist[i];
282????????????if(item.key?==?p_key){
283????????????????index?=?i;
284????????????}
285????????}
286????????var?key?=?-1;
287????????if(index?!=?-1){
288????????????key?=?_datalist[index].key;
289????????????if(_data_change_handler){
290????????????????_data_change_handler(true,[{key:key}],true);
291????????????}
292????????????_datalist.splice(index,1);
293????????}
294????????else{
295????????????if(_data_change_handler){
296????????????????_data_change_handler(false,{key:key},true);
297????????????}
298????????}
299????},
300????//綁定按鈕
301????this.bind_btn?=?function(obj){
302????????if(obj){
303????????????_btn_obj?=?obj;
304????????????$.each(_btn_obj,?function(i,?n){
305????????????????var?ele?=?$("#"?+?n);
306????????????????if(ele?==?undefined){
307????????????????????ele?=?$(n);
308????????????????}
309????????????????ele.click(function(){
310????????????????????switch(i){
311????????????????????????case?"play":????//播放
312????????????????????????????_player.play();
313????????????????????????????show_play_btn();
314????????????????????????????break;
315????????????????????????case?"pause":????//暫停
316????????????????????????????_player.pause();
317????????????????????????????show_pause_btn();
318????????????????????????????break;
319????????????????????????case?"stop":????//停止
320????????????????????????????_player.stop();
321????????????????????????????show_stop_btn()
322????????????????????????????break;
323????????????????????????case?"pre":????????//前一首
324????????????????????????????play_previous();
325????????????????????????????show_play_btn();
326????????????????????????????break;
327????????????????????????case?"next":????//下一首
328????????????????????????????play_next();
329????????????????????????????show_play_btn();
330????????????????????????????break;
331????????????????????}
332????????????????});
333????????????});?
334????????}
335????},
336????//設置音量
337????this.set_volume?=?function(p_num){
338????????if(p_num?==?undefined){
339????????????return?_volume;
340????????}
341????????_volume?=?p_num;
342????????_player.volume(_is_no_sound??0?:?_volume);
343????},
344????//設置進度
345????this.set_plan?=?function(p_num){
346????????_player.playHead(p_num);
347????},
348????//播放事件
349????this.set_play_call_back?=?function(p_fun){
350????????_play_handler?=?p_fun;
351????},
352????//設置列表改變事件
353????this.set_data_change_handler?=?function(p_fun){
354????????if(p_fun){
355????????????_data_change_handler?=?p_fun;
356????????}
357????},
358????//設置播放模式
359????this.pattern?=?function(p_pattern){
360????????if(p_pattern?==?undefined){
361????????????return?_play_pattern;
362????????}
363????????_play_pattern?=?p_pattern;
364????},
365????//獲取列表
366????this.get_datasource?=?function(){
367????????return?_datalist;
368????},
369????this.get_player?=?function(){
370????????return?_player;
371????},
372????//初始化
373????this.init?=?function(p_playId,p_play_callback){????????
374????????if($.browser.msie){
375????????????_player?=?new?media_player_proxy(document.getElementById(p_playId));
376????????}
377????????else{
378????????????_player?=?$("#"?+?p_playId);
379????????}
380????????if(p_play_callback){
381????????????_play_handler?=?p_play_callback;
382????????}
383????????if(_progress_change){
384????????????_player.onProgressChange(_progress_change);
385????????}
386????????_player.onSoundComplete(function(){
387????????????var?i?=?get_play_index_num();
388????????????play_index(i);
389????????});
390????????if($.browser.msie){
391?????????????_player.mPlayer({
392????????????????ready:?function?()?{
393????????????????????if(_play_index?==?-1){
394???????????????????????play_first();
395???????????????????????show_play_btn();
396????????????????????}
397????????????????????else{
398????????????????????????show_stop_btn();
399????????????????????}
400????????????????}
401????????????});
402????????}
403????????else{
404????????????_player.jPlayer({
405????????????????ready:?function?()?{
406????????????????????if(_play_index?==?-1){
407???????????????????????play_first();
408???????????????????????show_play_btn();
409????????????????????}
410????????????????????else{
411????????????????????????show_stop_btn();
412????????????????????}
413????????????????},
414????????????????swfPath:?URL_STATIC+"/media/music"
415????????????});
416????????}
417????}
418}
使用方法:
Codevar?player?=?new?player_proxy();
player.bind_btn({//綁定BOTTON
????????play:"play_btn",??//播放
????????pause:"pause_btn",//暫停
????????stop:"stop_btn",//停止
????????pre:"pre_btn",//上一首
????????next:"next_btn"//下一首
?});
//音樂數據格式?[{key:音樂標識,?filepath:路徑,?name:音樂名}]
player.set_data_change_handler(function(issuccess,arr,isdel){??//改變音樂數據后,執行的函數
????//issuccess:?是否成功
????//arr:?音樂數據改變的列表
????//isdel:?true為刪除數據
});
player.on_progress_change(function(lp,ppr,ppa,pt,tt){??//進步改變后,執行的函數
????????//lp:已下載百分數;?ppr:;?ppa:已播放百分數?pt:播放時間;?tt:總時間
});
player.init(playId,play_callback);??//playId:放置播放器的層ID,IE下的HTML需要加入media?player?object?如以下HTML;?play_callback:?播放歌曲時,執行的函數
/*
<object?id="media_player"?width="350"?height="64"?classid="CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6"
????????????????codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112"
????????????????align="baseline"?border="0"?standby="Loading?Microsoft?Windows?Media?Player?components"
????????????????type="application/x-oleobject">
????????????????<param?name="URL"?value="">
????????????????<param?name="autoStart"?value="true">
????????????????<param?name="invokeURLs"?value="false">
????????????????<param?name="playCount"?value="100">
????????????????<param?name="defaultFrame"?value="datawindow">
????????????</object>
*/
//除此之外,還提供了以下方法
player.control_sound(p_has);??//p_has:?true設置靜音,false開啟聲音?
player.add_dataarr(obj_arr);//增加歌曲(批量)?音樂數據:數組
?
轉載于:https://www.cnblogs.com/Max-Gan/archive/2009/07/29/1533838.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
以上是生活随笔為你收集整理的JQuery播放器代理--IE下支持wma格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Cocos2dX(2.x)_Lua开发
- 下一篇: 阻抗设计01