瀏覽代碼

Anomalie #456: Autoplay: passer a la suivant si lecture impossible

Sevajol Bastien 12 年之前
父節點
當前提交
04d4cb4649
共有 1 個文件被更改,包括 74 次插入40 次删除
  1. 74 40
      web/bundles/muzichcore/js/autoplay.js

+ 74 - 40
web/bundles/muzichcore/js/autoplay.js 查看文件

206
     $('#autoplay').hide();
206
     $('#autoplay').hide();
207
     // On vide le dom du lecteur
207
     // On vide le dom du lecteur
208
     $('div#'+autoplay_player_div_id+'_container').html('<div id="'+autoplay_player_div_id+'"></div>');
208
     $('div#'+autoplay_player_div_id+'_container').html('<div id="'+autoplay_player_div_id+'"></div>');
209
+    // Plus rien de dois être lu
210
+    autoplay_pause_all_players();
209
   });
211
   });
210
    
212
    
211
   
213
   
246
   {
248
   {
247
     autoplay_player = document.getElementById(autoplay_player_id);
249
     autoplay_player = document.getElementById(autoplay_player_id);
248
     autoplay_player.addEventListener("onStateChange", "youtube_StateChange");
250
     autoplay_player.addEventListener("onStateChange", "youtube_StateChange");
251
+    autoplay_player.addEventListener("onError", "youtube_error");
249
     $('img#autoplay_loader').hide();
252
     $('img#autoplay_loader').hide();
250
     youtube_play();
253
     youtube_play();
251
   }
254
   }
259
       autoplay_next();
262
       autoplay_next();
260
     }
263
     }
261
   }
264
   }
265
+  
266
+  // Fonction appelé par le lecteur youtube quand il y a une erreur
267
+  window.youtube_error = function(newState)
268
+  {
269
+    autoplay_next();
270
+  }
262
 
271
 
263
   // Lecture
272
   // Lecture
264
   function youtube_play()
273
   function youtube_play()
307
       var widgetIframe = document.getElementById('soundcloud_iframe_player');
316
       var widgetIframe = document.getElementById('soundcloud_iframe_player');
308
       autoplay_player_soundcloud = SC.Widget(widgetIframe);
317
       autoplay_player_soundcloud = SC.Widget(widgetIframe);
309
 
318
 
310
-      // Lorsque le lecteur est prêt on lance la lecture
311
-      autoplay_player_soundcloud.bind(SC.Widget.Events.READY, function ()
312
-      {
313
-        autoplay_player_soundcloud.play();
314
-        $('img#autoplay_loader').hide();
319
+      SC.get(ref_url, function(track, error) {
320
+        if (error) 
321
+        { 
322
+          // En cas d'erreur on passe a al suivante
323
+          autoplay_next(); 
324
+        }
325
+        else
326
+        {
327
+          // Lorsque le lecteur est prêt on lance la lecture
328
+          autoplay_player_soundcloud.bind(SC.Widget.Events.READY, function ()
329
+          {
330
+            autoplay_player_soundcloud.play();
331
+            $('img#autoplay_loader').hide();
315
 
332
 
316
-      });
333
+          });
317
 
334
 
318
-      autoplay_player_soundcloud.bind(SC.Widget.Events.PLAY, function ()
319
-      {
320
-        // Lorsque le lecteur commence une lecture
321
-        // On garde en mémoire l'index de la lecture en cours
322
-        autoplay_player_soundcloud.getCurrentSoundIndex(function(value){
323
-            index_track_previous = value;
324
-        });
325
-      });
335
+          autoplay_player_soundcloud.bind(SC.Widget.Events.PLAY, function ()
336
+          {
337
+            // Lorsque le lecteur commence une lecture
338
+            // On garde en mémoire l'index de la lecture en cours
339
+            autoplay_player_soundcloud.getCurrentSoundIndex(function(value){
340
+                index_track_previous = value;
341
+            });
342
+          });
326
 
343
 
327
-      // Lorsque le lecteur a terminé sa lecture, on passe au suivant
328
-      autoplay_player_soundcloud.bind(SC.Widget.Events.FINISH, function ()
329
-      {
344
+          // Lorsque le lecteur a terminé sa lecture, on passe au suivant
345
+          autoplay_player_soundcloud.bind(SC.Widget.Events.FINISH, function ()
346
+          {
330
 
347
 
331
-        // Cette variable contient le nombre de pistes dans la liste de lecture
332
-        var track_count = 1;
333
-        autoplay_player_soundcloud.getSounds(function(value){
334
-          // On récupère le nomre de pistes
335
-          track_count = value.length;
336
-        });
348
+            // Cette variable contient le nombre de pistes dans la liste de lecture
349
+            var track_count = 1;
350
+            autoplay_player_soundcloud.getSounds(function(value){
351
+              // On récupère le nomre de pistes
352
+              track_count = value.length;
353
+            });
337
 
354
 
338
-        autoplay_player_soundcloud.getCurrentSoundIndex(function(value){
355
+            autoplay_player_soundcloud.getCurrentSoundIndex(function(value){
339
 
356
 
340
-          // Si la index_track_previous est la même maintenant que la piste
341
-          // est terminé, c'est que l'on est arrivé en fin de liste.
342
-          // Cependant, si c'est une liste avec une piste unique, on passe 
343
-          // tout de suite a la suite
344
-          if (value == index_track_previous || track_count == 1)
345
-          {
346
-            autoplay_next();
347
-          }
357
+              // Si la index_track_previous est la même maintenant que la piste
358
+              // est terminé, c'est que l'on est arrivé en fin de liste.
359
+              // Cependant, si c'est une liste avec une piste unique, on passe 
360
+              // tout de suite a la suite
361
+              if (value == index_track_previous || track_count == 1)
362
+              {
363
+                autoplay_next();
364
+              }
348
 
365
 
349
-          // Sinon on prend al nouvelle valeur
350
-          index_track_previous = value;
366
+              // Sinon on prend al nouvelle valeur
367
+              index_track_previous = value;
351
 
368
 
352
-        });
369
+            });
353
 
370
 
371
+          });
372
+        }
354
       });
373
       });
355
 
374
 
375
+      
376
+
356
     }
377
     }
357
     else
378
     else
358
     {
379
     {
359
-      // Le lecteur iframe existait déjà
360
-    $('div#autoplay_player_soundcloud').show();
361
-      autoplay_player_soundcloud.load(ref_url+'&show_artwork=false&auto_play=true');
362
-      //autoplay_player_soundcloud.play();
363
-    $('img#autoplay_loader').hide();
380
+      SC.get(ref_url, function(track, error) {
381
+        if (error) 
382
+        { 
383
+          // En cas d'erreur on passe a al suivante
384
+          console.log('Not found!');
385
+          autoplay_next(); 
386
+        }
387
+        else
388
+        {
389
+
390
+          // Le lecteur iframe existait déjà
391
+          $('div#autoplay_player_soundcloud').show();
392
+            autoplay_player_soundcloud.load(ref_url+'&show_artwork=false&auto_play=true');
393
+            //autoplay_player_soundcloud.play();
394
+          $('img#autoplay_loader').hide();
395
+
396
+        }
397
+      });
364
     }
398
     }
365
          
399
          
366
   }
400
   }