筛选QMediaPlaylist中含有*.mp3项
时间: 2023-09-16 20:12:45 浏览: 35
可以通过QMediaPlaylist的items()函数获取播放列表中的所有项,然后遍历这些项,判断它们的URL是否以".mp3"结尾即可。
示例代码如下:
```python
playlist = QMediaPlaylist()
# 添加一些项到播放列表中
...
# 获取所有项
items = playlist.items()
# 筛选出所有URL以".mp3"结尾的项
mp3_items = [item for item in items if item.url().toString().endswith(".mp3")]
```
mp3_items就是包含所有URL以".mp3"结尾的项的列表。
相关问题
用C++筛选QMediaPlaylist中含有*.mp3项
可以使用QMediaPlaylist的函数items()获取播放列表中的所有项,然后遍历每个项的url()属性,判断是否以".mp3"结尾,如果是则将该项加入到筛选结果中。以下是示例代码:
```cpp
QMediaPlaylist *playlist = new QMediaPlaylist();
// 添加音频项到播放列表中...
QList<QMediaContent> items = playlist->items();
QList<QMediaContent> filteredItems;
foreach (const QMediaContent &item, items) {
QString url = item.canonicalUrl().toString();
if (url.endsWith(".mp3", Qt::CaseInsensitive)) {
filteredItems.append(item);
}
}
// 筛选结果保存在filteredItems列表中
```
需要注意的是,QMediaContent对象的canonicalUrl()函数返回的是QUrl类型,需要通过toString()转换为字符串再进行判断。此外,endsWith()函数的第二个参数为Qt::CaseInsensitive,表示忽略大小写。
deftSuffic = "Videos(*.avi *.mp4 *.wmv);;Films(*.mkv *.rmvb *.mpeg);;Alls(*.*)";
这是一个文件筛选器的字符串,用于在打开文件对话框中设置可选择的文件类型。其中,Videos(*.avi *.mp4 *.wmv)表示可以选择扩展名为.avi、.mp4和.wmv的视频文件,Films(*.mkv *.rmvb *.mpeg)表示可以选择扩展名为.mkv、.rmvb和.mpeg的电影文件,Alls(*.*)表示可以选择任何类型的文件。多个类型之间使用双分号“;;”隔开。