我正在开发一个媒体应用程序,我想改进它的 Siri 交互。我已经实现了一个 Intents 扩展,将“广播”作为媒体类别,我正在改进resolveMediaItems
方法。通常,如果我告诉 Siri Play <search query> in <my app>
,然后INPlayMediaIntent
在调试器中检查 ,我会看到类似这样的内容
<INPlayMediaIntent: 0x143f181c0> {
playShuffled = 0;
mediaSearch = <INMediaSearch: 0x143d19b50> {
reference = 0;
mediaType = 18;
sortOrder = 0;
albumName = <null>;
mediaName = search query;
genreNames = (
);
artistName = <null>;
moodNames = (
);
releaseDate = <null>;
mediaIdentifier = <null>;
};
mediaContainer = <null>;
playbackRepeatMode = none;
mediaItems = <null>;
resumePlayback = 0;
playbackQueueLocation = now;
playbackSpeed = <null>;
}
其中mediaSearch.mediaName
有来自扬声器的数据,我可以用它来解决查询。
不幸的是,如果查询中包含“音乐”或“广播”这些词,则这些词不会包含在该mediaName
字段中。如果查询只包含这些词,例如, "Play music in <my app>"
该字段将是<null>
并且INPlayMediaIntent
实际上将不包含任何内容。
鉴于应用程序提供的内容,了解是否使用了“音乐”和“广播”这两个词对于明智地解决查询是绝对必要的。谁能提供有关如何使这些术语在INPlayMediaIntent
对象中可见的指导?