私はメディア アプリに取り組んでおり、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
これらの用語をオブジェクト内に表示する方法について、誰かがガイダンスを提供できますか?