Плейлисты

[Функция, связанная с этой страницей, Медиаплеер Windows SDK, является устаревшей функцией. Он был заменен MediaPlayer. MediaPlayer оптимизирован для Windows 10 и Windows 11. Корпорация Майкрософт настоятельно рекомендует по возможности использовать MediaPlayer вместо пакета SDK для Медиаплеер Windows. Корпорация Майкрософт предлагает переписать существующий код, в котором используются устаревшие API, чтобы по возможности использовать новые API.]

Объектная модель элемента управления ActiveX Медиаплеер Windows 6.4 включает четыре метода и одно свойство для работы с списками воспроизведения метафайлов Windows Media:

  • Player6. GetCurrentEntry
  • Player6. SetCurrentEntry
  • Player6. GetMediaParameter
  • Player6. GetMediaParameterName
  • Player6. EntryCount.

Вместе они предоставляют ограниченные функциональные возможности для навигации по метафайку списка воспроизведения с расширением ASX-файла и получения сведений о записях, содержащихся в списке воспроизведения.

Медиаплеер Windows 7 появилась "Библиотека мультимедиа". Библиотека позволяет пользователям упорядочивать цифровое мультимедийное содержимое, а также создавать настраиваемые списки воспроизведения, которыми можно управлять из графического пользовательского интерфейса проигрывателя. Объектная модель элементов activeX Медиаплеер Windows 7 или более поздней версии обеспечивает поддержку работы с списками воспроизведения библиотек, а также списками воспроизведения, содержащимися в метафайлах Windows Media с расширением ASX.

Примечание

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

 

Объектная модель Медиаплеер Windows 7 или более поздней версии включает три объекта для обработки списков воспроизведения. Объект PlaylistCollection предоставляет функциональные возможности для организации списков воспроизведения; представляет всю коллекцию списков воспроизведения в библиотеке пользователя. Объект PlaylistArray предоставляет способ получения определенного списка воспроизведения из объекта PlaylistCollection с помощью номера индекса; два метода объекта PlaylistCollection извлекают объект PlaylistArray . Объект Playlist предоставляет свойства и методы, необходимые для управления элементами мультимедиа, содержащимися в одном списке воспроизведения.

Например, так как каждый список воспроизведения в библиотеке имеет уникальное имя, список воспроизведения можно получить из библиотеки с помощью playlistCollection. Метод getByName :

// Retrieve a PlaylistArray object that contains 
// exactly one Playlist object.
var plarray = WMP9.playlistCollection.getByName("MyPlaylist");

// Get the Playlist object from the PlaylistArray object.
// The Playlist object has index number zero.
var pl = plarray.item(0);

// Make the retrieved playlist the current playlist.
WMP9.currentPlaylist = pl;

Чаще всего вам потребуется работать с текущим списком воспроизведения. Хотя можно использовать несколько объектов списка воспроизведения, проигрыватель может извлечь только один из них. Свойство currentPlaylist в любой момент времени: свойство, которое Медиаплеер Windows обрабатывается в данный момент.

Когда Медиаплеер Windows 7 или более поздней версии воспроизводит метафайл Windows Media с расширением ASX, сначала создается объект списка воспроизведения. Затем он заполняет объект сведениями из списка воспроизведения ASX, а затем делает этот объект плейлиста текущим. Это означает, что вы можете использовать свойства и методы, связанные с объектом Playlist , для управления списками воспроизведения ASX точно так же, как и с списками воспроизведения в библиотеке. Например, чтобы получить количество записей в списке воспроизведения ASX с помощью объектной модели версии 6.4, используйте Player6. Свойство EntryCount :

var entrycount = WMP64.EntryCount;

При использовании объектной модели Медиаплеер Windows 7 или более поздней версии используйте список воспроизведения.свойство count:

var entrycount = WMP9.currentPlaylist.count;

При использовании элемента управления версии 6.4 можно использовать Player6. Метод GetCurrentEntry для получения индекса текущей записи в списке воспроизведения ASX:

var entrynum = WMP64.GetCurrentEntry();

Тот же результат можно получить с помощью объектной модели Медиаплеер Windows 7 или более поздней версии в скрипте. В следующем примере JScript сравнивается текущий объект мультимедиа с каждым элементом в списке воспроизведения. Когда media. IsIdentical возвращает значение true, в окне сообщения отображается индекс текущего элемента мультимедиа.

function matchit(){
// Store the current playlist object in a variable.
var pl = WMP9.currentPlaylist;

// Loop through the playlist one entry at a time.
  for (var i = 0; i < pl.count; i++){

   // Test whether the current media item matches 
   // the item in the playlist at the current loop index.
   if (WMP9.currentmedia.isIdentical(pl.item(i))){

       // They match, display the index.
       var message = "Current media at index: " + i;
       alert(message);

       // Exit the function, don't continue looping!
       return;
      }
  }
}

Чтобы указать индекс текущей записи в списке воспроизведения ASX, используйте Player6. SetCurrentEntry. Индексы записей списка воспроизведения в версии 6.4 начинаются с 1, поэтому, чтобы сделать вторую запись в списке воспроизведения метафайла текущей, используйте следующий синтаксис:

WMP6.SetCurrentEntry(2);

Индексы записей списка воспроизведения основаны на нулях в Медиаплеер Windows 7 или более поздней версии. Чтобы сделать вторую запись в списке воспроизведения метафайла текущей, при использовании объектной модели Медиаплеер Windows 7 или более поздней версии используйте следующий синтаксис:

WMP9.controls.currentItem = WMP9.currentPlaylist.item(1);

В следующем примере JScript показана функция, которая принимает номер индекса в качестве параметра, а затем делает запись списка воспроизведения, соответствующую индексу, текущим элементом мультимедиа:

function setindex(idx){
// Store the current playlist in a variable.
var pl = WMP9.currentPlaylist;

// Get the first playlist entry.
var firstmedia = pl.item(0);

// Start the Player to allow navigation within the playlist.
WMP9.controls.playItem(firstmedia);

// Test whether idx is within a valid range.
   if (idx < pl.count && idx >= 0){

     // Set the currentItem to the desired playlist item.
     WMP9.controls.currentItem = pl.item(idx);

     // Display the name of the media item.
     alert(WMP9.currentMedia.name);
     return true;
 }

// The index is out of range, stop the Player, alert the user.
WMP9.controls.stop();
alert("Index out of range");
return false;
}

Метафайлы Windows Media могут содержать пользовательские элементы параметров, которые задаются с помощью тега <PARAM> . При использовании объектной модели версии 6.4 можно получить имя определенного параметра с помощью Player6. Метод GetMediaParameterName . В следующем примере JScript извлекается имя первого параметра в первой записи списка воспроизведения ASX:

var paramname = WMP6.GetMediaParameterName(1,1);

Аналогичным образом можно получить значение, связанное с параметром , с помощью Player6. GetMediaParameter:

var paramvalue = WMP6.GetMediaParameter(1, paramname);

В следующем примере JScript используется объектная модель Медиаплеер Windows 7 или более поздней версии для получения имени и значения параметра из первой записи в списке воспроизведения ASX:

function getattribute(){
// Store the first playlist entry as a Media object.
var firstmedia = WMP9.currentplaylist.item(0);

// Get the name of the first parameter in the object named firstmedia.
var attname = firstmedia.getAttributeName(0);

// Get the value of the first parameter in the object named firstmedia.
var attval = firstmedia.getItemInfo(attname);

// Display the information.
alert(attname + ": " + attval);
}

Вы можете использовать PlaylistCollection. Метод importPlaylist для добавления списка воспроизведения ASX в библиотеку. После импорта список воспроизведения метафайла становится списком воспроизведения библиотеки, что позволяет управлять им с помощью всех доступных свойств и методов. Чтобы приложение могло использовать метод importPlaylist , пользователь должен предоставить полный доступ к библиотеке.

Вы можете использовать PlaylistCollection. getByName для проверки наличия списка воспроизведения. Этот метод всегда возвращает допустимый объект PlaylistArray . Если полученный массив списков воспроизведения содержит ровно один список воспроизведения, то в библиотеке существует список воспроизведения с таким именем. В противном случае массив списка воспроизведения не будет содержать объекта списка воспроизведения; Это означает, что в библиотеке нет списка воспроизведения с именем, переданным в качестве аргумента методу getByName . Это демонстрируется в следующем примере JScript:

// Specify an .asx playlist file.
WMP9.URL = "https://www.microsoft.com/someplaylist.asx";

// Open the playlist and start playing the content.
WMP9.controls.play();

// Store the current playlist object.
var pl = WMP9.currentPlaylist;

// Attempt to retrieve from the library 
// a playlist having the same name as the current playlist.
var plarray = WMP9.playlistCollection.getByName(pl.name);

// Test whether the PlaylistArray object, plarray, contains
// a Playlist object.
if (!plarray.count)
   
   // If plarray contains no playlist, then import 
   // the current one.
   WMP9.playlistCollection.importPlaylist(pl);
}

Управление списками воспроизведения

Руководство по миграции объектной модели

Объект списка воспроизведения