Плейлисты
[Функция, связанная с этой страницей, Медиаплеер 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);
}
Связанные темы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по