Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
  <script src="https://unpkg.com/adaptr-music-player@latest/dist/adaptr-script.js"></script>
</head>
<body>
   Play songs that match:
  <input type="text" id="q">
  <button id="search" disabled>
    go
  </button>
  
  <div id="track-list-title"></div>
  <ul id="track-list">
  </ul>
  <div id="warning"></div>
  
</body>
</html>
 
let searchButton = document.getElementById('search');
let queryElement = document.getElementById('q');
let warning = document.getElementById('warning');
let title = document.getElementById('track-list-title');
let list = document.getElementById('track-list');
let player = new Adaptr.Player('adaptr', 'adaptr', {debug: true});
player.initialize()
  .then((stations) => {
    searchButton.disabled = false;  
  })
  .catch((e) => {
    // player unsuccessfully initialized, likely due to licensing
    // restrictions. No music is available for playback.
    warning.innerHTML = 'Sorry, music is not available in your area.';
  });
searchButton.addEventListener('click', () => {
  player.initializeAudio();
  
  const term = queryElement.value;
  // stop any existing playback
  player.stop();
  
  player.searchAudioFiles(term, 0, 20)
      .then((pageOfSearchResults) => {
       if (pageOfSearchResults.total === 0) {
         title.innerHTML = '';
         list.innerHTML = '';
         warning.innerHTML = 'Sorry, no matches for "' + term + '"';
         
       } else {
         warning.innerHTML = '';
         title.innerHTML = 'Now playing:';
         
         let items = pageOfSearchResults.results.map(({ audioFile, station }) => {
          return '<li>' + audioFile.track.title + ' by ' + audioFile.artist.name + ' in ' + station.name + '</li>';
         });
         
         list.innerHTML = items.join('');
         
         let audioFiles = pageOfSearchResults.results.map(({ audioFile }) => audioFile);
         player.playAudioFiles(audioFiles);
       }
    });  
});
Output

This bin was created anonymously and its free preview time has expired (learn why). — Get a free unrestricted account

Dismiss x
public
Bin info
anonymouspro
0viewers