GenericStreamingPlayer.js 2.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. function GenericStreamingPlayer(ref_id, object_for_player,
  2. callback_event_play,
  3. callback_event_end,
  4. callback_event_error,
  5. callback_event_finish_playlist
  6. )
  7. {
  8. var _ref_id = ref_id;
  9. var _object_for_player = object_for_player;
  10. var _playlist = new Array();
  11. var _player = null;
  12. var _callback_event_play = callback_event_play;
  13. var _callback_event_end = callback_event_end;
  14. var _callback_event_error = callback_event_error;
  15. var _callback_event_finish_playlist = callback_event_finish_playlist;
  16. var _current_index = 0;
  17. this.create_player = function()
  18. {
  19. var jplayer_player = $('#jquery_jplayer_1').clone();
  20. var jplayer_content = $('#jp_container_1').clone();
  21. jplayer_player.attr ('id', 'jplayer_player_element_'+ref_id);
  22. jplayer_content.attr('id', 'jplayer_content_element_'+ref_id);
  23. _object_for_player.html('');
  24. _object_for_player.append(jplayer_player);
  25. _object_for_player.append(jplayer_content);
  26. JQueryJson(url_element_get_stream_data+'/'+ref_id, {}, function(response){
  27. if (response.status == 'success')
  28. {
  29. for(var i = 0; i < response.data.length; i++)
  30. {
  31. var song = new GenericSong(response.data[i].name, response.data[i].url);
  32. _playlist[i] = song;
  33. }
  34. _player = new jPlayerPlaylist
  35. (
  36. {
  37. jPlayer: '#jplayer_player_element_'+ref_id,
  38. cssSelectorAncestor: '#jplayer_content_element_'+ref_id
  39. },
  40. _playlist,
  41. {
  42. playlistOptions:
  43. {
  44. autoPlay: true,
  45. enableRemoveControls: true
  46. },
  47. swfPath: "/jplayer/js",
  48. supplied: "mp3",
  49. wmode: "window"
  50. }
  51. );
  52. var player = $('#jplayer_player_element_'+ref_id);
  53. player.bind($.jPlayer.event.play, event_play);
  54. player.bind($.jPlayer.event.ended, event_end);
  55. player.bind($.jPlayer.event.error, event_error);
  56. }
  57. });
  58. }
  59. var event_play = function(event)
  60. {
  61. _current_index = _player.current;
  62. _callback_event_play(event);
  63. }
  64. var event_end = function(event)
  65. {
  66. _callback_event_end(event);
  67. if (_current_index+1 == _playlist.length)
  68. {
  69. event_finish_playlist(event);
  70. }
  71. }
  72. var event_error = function(event)
  73. {
  74. _callback_event_error(event);
  75. }
  76. var event_finish_playlist = function(event)
  77. {
  78. _callback_event_finish_playlist(event);
  79. }
  80. this.play = function()
  81. {
  82. _player.jPlayer("play");
  83. }
  84. this.stop = function()
  85. {
  86. _player.jPlayer("stop");
  87. }
  88. this.pause = function()
  89. {
  90. _player.jPlayer("pause");
  91. }
  92. }
  93. function GenericSong(title, mp3)
  94. {
  95. this.title = title;
  96. this.mp3 = mp3;
  97. }