https://developer.apple.com/videos/play/wwdc2019/207/
Media Intent에는 4가지가 있음
: audio 재생할 수 있게
: audio plalist에 삽입
: 미디어 항목에 대한 선호도 표현
: 특정 미디어 항목 검색
1) 음악
노래, 앨범, 아티스트, 재생목록, 장르 등
INMediaSearch 참고하기!
2) Podcast
3) 오디오북
4) 라디오
위에 속하지 않아도, SiriKit Media Intent 채택하여 모든 기능을 활용할 수 있음
ex) "Play [Search Term(검색어)] in [MyApp(내 앱에서)]"
-> 앱에서 검색어를 조회, 재생할 수 있음
SiriKit Media로 요청하는 방법!
"Play Awesome Song in MyApp"
요청 처리는 "내 앱에서 멋진 노래 틀어줘"로 시작된다.
그러면 Siri는 너의 앱에 대한 요청임을 인식하고, Intents Extension을 시작할거다.
SiriKit 요청 처리에는 3가지 단계가 있음
1. 해결 Resolve
where item.name == mediaName {
미디어 검색에서 미디어 이름 속성을 사용해서 항목의 이름 속성과 비교할거다.
(배송 앱에서 할 작업은 아니다)
이름이 정확히 일치하면, 재생할 항목을 찾은거고, 해당 항목의 속성을 사용하여 성공 결과를 만들거다.
그 다음 completion 핸들러를 호출하고, 핸들링으로 넘어간다.
여기에서는 핸들은 매우 짧아지게 된다. 왜냐면 우리가 할 일은 handlerInApp 성공 응답 코드를 반환하는 것뿐..
그러면 백그라운드에서 앱을 실행하는 프로세스가 시작된다.
백그라운드 앱 실행을 지원하기 위해 App Delegate에서 구현하는 방법은 Application Process Intent Completion Handler이다.
-> 이거 짧은 구현임.
재생할 첫번째 미디어 항목 읽은 다음에, 평소처럼 앱에서 해당 항목을 재생한다.
마지막으로 성공 응답코드를 사용해서 완료 핸들러를 호출한다.
기존 미디어 애플리케이션에 SiriKit Media Intent Process를 추가해보자. 아주 쉽다!
예로 음악 앱이 있고, 여기에 Siri 지원을 추가해볼거다.
TODO
[] Siri extension target 추가
[] 몇가지 메서드 추가
[] Siri 요청 처리
File >> New >> Target >> Select >> Intents Extension 선택
그러면 xcode가 Intent Handler를 만들어줄거다. 이제 앱에 Siri 기능을 추가해보자!
왼쪽 상단에 +Capability >> Siri해서 추가
다시 Target >> (App)Extension >> Intent 추가해야돼
여기서는 InPlayMediaIntent, InAddMediaIntent 추가할게
11:15
Reference
https://developer.apple.com/kr/siri/
https://developer.apple.com/documentation/sirikit/