Чтобы добавить плагин Vast в мой индивидуальный плеер - PullRequest
0 голосов
/ 25 февраля 2019

Привет!У меня был вопрос к экспертам по субмарине, и я надеялся, что кто-нибудь сможет указать мне правильное направление.У меня есть настроенный проигрыватель, который транслирует музыку с сервера, и я хочу монетизировать его с помощью аудиорекламы.Моя команда и я работали над этим, но мы не можем заставить объявление показываться, когда я нажимаю кнопку воспроизведения.

Проблема, с которой мы сталкиваемся в настоящее время, это ссылка создает * 1005Файл * XML (URL-адрес используется для получения ответа на объявление VAST от стороннего рекламного сервера), и мне нужно включить некоторые параметры из этого ОТВЕТА XML в мою функцию кнопки воспроизведения (чего я не делаюзнать, как это сделать), чтобы играть в рекламу.

К вашему сведению, система построена на PHP , а плеер построен на jquery.В отличие от живых радиосистем, наш проигрыватель настроен и будет воспроизводить рекламу и песни из базы данных. Теперь мы думаем, что для нашего проигрывателя доступен какой-либо обширный или последний плагин (или любой метод, пример и т. Д.), Который может решить нашу проблему.

Песни воспроизводятся через сервер aws с использованием экземпляра контейнера ec2.

Веб-приложение уже live

Ниже приведены библиотека и код, используемые дляигрок.

<script src="libs/mediaelement/build/mediaelement-and-player.min.js" type="text/javascript"></script>
  <script src="libs/mediaelement/build/mep.js" type="text/javascript"></script>

Следующий скрипт используется для создания списка воспроизведения и других ресурсов, таких как play / pause / like и т. Д. На веб-сайте

    <script type="text/javascript">

    //(function ($) {
      //"use strict";
     $(document).ready(function(){


      if($('.playlist').length == 0) return;
       var adPlayed = false;
        var prerollWidget;
      var playlist = $( '.playlist' ).mepPlaylist({
        audioHeight: '40',
        audioWidth: '100%',
    videoHeight: '40',
    videoWidth: '100%',
    audioVolume: 'vertical',
    mepPlaylistLoop: true,
    enableKeyboard: false,
    alwaysShowControls: true,
    mepSkin: 'mejs-audio',
    mepResponsiveProgress: true,
    vastAdTagUrl:'http://cmod677.live.streamtheworld.com/ondemand/ars?version=1.6.4&banners=300x250&type=midroll&stid=256793&gdpr=1',
    vastAdsType:'vast',
    mepSelectors: {
      playlist: '.playlist',
      track: '.track',
      tracklist: '.tracks'
    },
    features: [
      'meplike',
      'mepshare',
      'mepartwork',
      'mepcurrentdetails',
      'mepplaylist',
      'mephistory',
      'mepprevioustrack',
      'playpause',
      'mepnexttrack',
      'current',
      'duration',
      'volume',
      'mepicons',
      'meprepeat',
      'mepshuffle',
      'mepsource',
      'mepbuffering',
      'meptracklist',
      'playlistfeature',
      'postroll',
      /'mepplaylisttoggle',/
      'youtube'
    ],
    mepPlaylistTracks: [

      {  
            "id": "8",
            "link": "track.detail.php?id=8",
            "title": "Jimmy",
                        "thumb": { "src": "cover/song_cover/logo_sln.png" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/Jimmy.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "9",
            "link": "track.detail.php?id=9",
            "title": "Working Man",
                        "thumb": { "src": "cover/song_cover/logo_sln.png" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/Working-Man.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "5",
            "link": "track.detail.php?id=5",
            "title": "Allah Duhai Hai",
                        "thumb": { "src": "cover/song_cover/race-3-s_1533041255.jpg" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/AllahDuhaiHai.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "12",
            "link": "track.detail.php?id=12",
            "title": "Get Low",
                        "thumb": { "src": "cover/song_cover/getlow_1537337849.jpg" },
                        "src": "https://soundslikenoise.s3.amazonaws.com/GetLow.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "6",
            "link": "track.detail.php?id=6",
            "title": "Molly",
                        "thumb": { "src": "cover/song_cover/logo_sln.png" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/Molly.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "1",
            "link": "track.detail.php?id=1",
            "title": "Sharabi",
                        "thumb": { "src": "cover/song_cover/logo_sln.png" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/Sharabi.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "7",
            "link": "track.detail.php?id=7",
            "title": "Tip Toe",
                        "thumb": { "src": "cover/song_cover/logo_sln.png" },
                        "src": "http://soundslikenoise.s3.amazonaws.com/Tip-Toe.mp3",
            "meta": {
                "author": "by Amit Singh",
                "authorlink": "artist.php",

            }
        },



      {  
            "id": "11",
            "link": "track.detail.php?id=11",
            "title": "Aao Kabhi Haveli Pe",
                        "thumb": { "src": "cover/song_cover/62470299_1537292143.jpg" },
                        "src": "https://soundslikenoise.s3.amazonaws.com/Aao_Kabhi_Haveli_Pe.mp3",
            "meta": {
                "author": "by Rajeev Rahi",
                "authorlink": "artist.php",

            }
        },




    ]
  });

   var player = playlist.find('audio, video')[0].player;

  // get player, then you can use the player.mepAdd(), player.mepRemove(), player.mepSelect()

 player.$node.on('play.mep', function(e) {
 var track=this.src;
  $.ajax({
      type     : 'POST',
      url      : 'lib/like.php?action=play_count',
            data     : 'track='+track+'&&user_id=0',
              });
        loadDoc();
        updateDisplay();
       // player.play();
  });
   var id = $("#myBtn").attr("track-id");


 player.$node.on('like.mep', function(e, trackid){

 //alert(trackid);
    $.ajax({
      type     : 'POST',
      url      : 'lib/like.php?action=like_songs',
            data     : 'track_id='+trackid+'&&user_id=0',
          success  : function(data) {
         //console.log(data);
         //alert(data);
      if(data=='<span style="color:green;padding-right:10px;font-size:20px"><i class="fa fa-check"></i></span>This song has been added as your favorite')
        {
           $('[track-id='+trackid+']').toggleClass('is-like');
         //  document.getElementById('favorite').value=data;
         $("#myModal").modal();
          $('#favorite').html(data);
        }
else
{
 $('[track-id='+trackid+']').toggleClass('');
         //  document.getElementById('favorite').value=data;
         $("#myModal").modal();
          $('#favorite').html(data);
}
        }
        });

    //alert(trackid);
    /*if(trackid)
    {
      window.location.href="lib/like.php?action=like_songs&&track_id="+trackid+"&&user_id=";
    }*/
     //$('[track-id='+trackid+']').toggleClass('is-like');

  });
  player.$node.on('share.mep', function(e, trackid){
    //alert(trackid);
    var songID=$('#songs').text(trackid);

  });

  // event on play



  // event on pause
  player.$node.on('pause', function(e){
   // alert(trackid);
    updateDisplay();
  });

  // update when pjax end
  $(document).on('pjaxEnd', function() {
    updateDisplay();
  });

  // simulate the play btn
  $(document).on('click.btn', '.btn-playpause', function(e, trackid){
 // alert(trackid);
      e.stopPropagation();
      var self = $(this);
      //alert(trackid);
      if( self.hasClass('is-playing') ){
        self.removeClass('is-playing');
        player.pause();
      }else{
        var item = getItem(self);
        item && player.mepAdd(item, true);
      }
  });

  function updateDisplay(){
    $('[data-id]').removeClass('active').find('.btn-playpause').removeClass('is-playing').parent().removeClass('active');
    var track = player.mepGetCurrentTrack();
    if(!track || !track.id) return;
    var item = $('[data-id="'+track.id+'"]');
    //alert(item);
    if( player.media.paused ){
      item.removeClass('active').find('.btn-playpause').removeClass('is-playing').parent().removeClass('active');
    }else{
      item.addClass('active').find('.btn-playpause').addClass('is-playing').parent().addClass('active');
    }
  }

  // get item data, you can use ajax to get data from server
  function getItem(self){
    var item = self.closest('.item');
    // track detail
    if(!item.attr('data-src')){
      self.toggleClass('is-playing');
      $('#tracks').find('.btn-playpause').first().trigger('click');
      return false;
    }

    var obj = {
        meta: {
           author: item.find('.item-author').find('a').text()
          ,authorlink : item.find('.item-author').find('a').attr('href')
        }
        ,src: self.closest('[data-src]').attr("data-src")
        ,thumb: {
          src: item.find('.item-media-content').css("background-image").replace(/^url\(["']?/, '').replace(/["']?\)$/, '')
        }
        ,title: item.find('.item-title').find('a').text()
        ,link: item.find('.item-title').find('a').attr('href')
        ,id: self.attr("data-id") ? self.attr("data-id") : self.closest('[data-id]').attr("data-id")
    };
    return obj;
  }
/*function loadDoc(src) {
    //debugger;
// Player settings
var src = {
  hls: src
};
// Player settings
var settings = {
  licenseKey: 'Y2trY3FlYW9nZyEqXyUwZThrejBjc2F2a2VzMHYyeT0/cm9tNWRhc2lzMzBkYjBBJV8q',
  src: src,
  width: 1903,
  // Enabling ads
  ads: true,
  adTagUrl: 'http://cmod677.live.streamtheworld.com/ondemand/ars?version=1.6.4&banners=300x250&type=midroll&stid=256793&gdpr=1',
  adTagWaterfall: [
    'http://cmod677.live.streamtheworld.com/ondemand/ars?version=1.6.4&banners=300x250&type=midroll&stid=256793&gdpr=1'
  ],
  audioOnly: true
};
var elementID = 'mep_0';
var rmp = new RadiantMP(elementID);
rmp.init(settings);

}*/
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  var xmlDoc='';
  xhttp.open("GET", "http://cmod677.live.streamtheworld.com/ondemand/ars?version=1.6.4&banners=300x250&type=midroll&stid=256793&gdpr=1", true);
  xhttp.send();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      xmlDoc = this.responseText;
      console.log(xmlDoc.getElementsByTagName('MediaFiles'));
    }
  };

}
});
//})(jQuery);
</script>

СпасибоВы заранее: о)

...