-
Design high quality Siri media interactions
Demystify the art of designing Siri experiences for your music and audio apps: We'll show you how to think about crafting great interactions and how you can provide custom vocabulary so that Siri can respond with more accuracy and personality. We'll also explain how you can debug common errors and test your intents using the same methods Apple's own Siri team employs.
Recursos
Vídeos relacionados
WWDC20
- Create quick interactions with Shortcuts on watchOS
- Decipher and deal with common Siri errors
- Design for intelligence: Apps, evolved
- Design for intelligence: Discover new opportunities
- Design for intelligence: Make friends with "The System"
- Design for intelligence: Meet people where they are
- Empower your intents
- Evaluate and optimize voice interaction for your app
- Expand your SiriKit Media Intents to more platforms
- Feature your actions in the Shortcuts app
- Integrate your app with Wind Down
- What's new in SiriKit and Shortcuts
Tech Talks
WWDC19
-
Buscar neste vídeo...
-
-
5:46 - resolveMediaItems method
func resolveMediaItems(for intent: INPlayMediaIntent, with completion: @escaping ([INPlayMediaMediaItemResolutionResult]) -> Void) { let mediaSearch = intent.mediaSearch resolveMediaItems(for: mediaSearch) { optionalMediaItems in guard let mediaItems = optionalMediaItems else { return } completion(INPlayMediaMediaItemResolutionResult.successes(with: mediaItems)) } } -
10:21 - User vocabulary
let vocabulary = INVocabulary.shared() let playlistNames = NSOrderedSet(objects: "70s punk classics") vocabulary.setVocabularyStrings(playlistNames, of: .mediaPlaylistTitle) -
11:28 - Global vocabulary example
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ParameterVocabularies</key> <array> <dict> <key>ParameterNames</key> <array> <string>INPlayMediaIntent.playlistTitle</string> </array> <key>ParameterVocabulary</key> <array> <dict> <key>VocabularyItemSynonyms</key> <array> <dict> <key>VocabularyItemPhrase</key> <string>70s punk anthems</string> </dict> </array> <key>VocabularyItemIdentifier</key> <string>70s punk anthems</string> </dict> </array> </dict> </array> </dict> </plist> -
13:07 - Resolve media items method
func resolveMediaItems(for intent: INPlayMediaIntent, with completion: @escaping ([INPlayMediaMediaItemResolutionResult]) -> Void) { let mediaSearch = intent.mediaSearch resolveMediaItems(for: mediaSearch) { optionalMediaItems in guard let mediaItems = optionalMediaItems else { return } completion(INPlayMediaMediaItemResolutionResult.successes(with: mediaItems)) } } -
13:31 - User vocabulary syncing
// Set our playlist title in user vocabulary so we get the proper Siri intent let vocabulary = INVocabulary.shared() let playlistNames = NSOrderedSet(objects: "70s punk classics") vocabulary.setVocabularyStrings(playlistNames, of: .mediaPlaylistTitle) -
14:57 - Global vocabulary example
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ParameterVocabularies</key> <array> <dict> <key>ParameterNames</key> <array> <string>INPlayMediaIntent.playlistTitle</string> </array> <key>ParameterVocabulary</key> <array> <dict> <key>VocabularyItemSynonyms</key> <array> <dict> <key>VocabularyItemPhrase</key> <string>70s punk anthems</string> </dict> </array> <key>VocabularyItemIdentifier</key> <string>70s punk anthems</string> </dict> </array> </dict> </array> </dict> </plist>
-