복사성공!
1
val soundAgent = nuguAndroidClient.getAgent(DefaultSoundAgent.NAMESPACE)
최신 버전은 1.0 입니다.
Version | Date | Description |
---|---|---|
1.0 | 2020.04.01 | 규격 추가 |
Sound interface 규격에 따른 디바이스의 동작 제어는 SoundAgent 가 처리합니다.
NuguAndroidClient instance 를 통해 SoundAgent instance 에 접근할 수 있습니다.
1
val soundAgent = nuguAndroidClient.getAgent(DefaultSoundAgent.NAMESPACE)
NuguAndroidClient 생성시 SoundProvider 를 추가합니다.
1
2
3
4
5
class MySoundProvider: SoundProvider {
...
}
NuguAndroidClient.Builder(...)
.enableSound(MySoundProvider())
NuguClient instance 를 통해 SoundAgent instance 에 접근할 수 있습니다.
1
let soundAgent = nuguClient.soundAgent
CapabilityFactory::makeCapability 함수로 SoundAgent 를 생성하고 NuguClient 에 추가해 주어야합니다.
1
2
3
4
5
6
auto sound_handler(std::shared_ptr<ISoundHandler>(
CapabilityFactory::makeCapability<SoundAgent, ISoundHandler>()));
nugu_client->getCapabilityBuilder()
->add(sound_handler.get())
->construct();
디바이스 음원 재생이 Beep directive 로 요청될 수 있습니다.
SoundProvider 를 구현합니다.
1
2
3
4
5
6
7
8
class MySoundProvider: SoundProvider {
override fun getContentUri(name: SoundProvider.BeepName): URI {
return URI.create(
Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + context.packageName + "/" + R.raw.responsefa
.toString()
);
}
}
SoundAgentDelegate 를 추가합니다.
1
2
3
4
5
6
class MySoundAgentDelegate: SoundAgentDelegate {
func soundAgentDidChange(state: SoundState, dialogRequestId: String) {
...
}
}
soundAgent.delegate = MySoundAgentDelegate()
ISoundListener 를 추가합니다.
1
2
3
4
5
6
7
8
9
10
11
class MySoundListener : public ISoundListener {
public:
...
void handleBeep(BeepType beep_type) override
{
...
}
};
auto sound_listener(std::make_shared<MySoundListener>());
CapabilityFactory::makeCapability<SoundAgent, ISoundHandler>(sound_listener.get());
1
2
3
4
5
{
"Sound": {
"version": "1.0"
}
}
Beep 유형의 음원 재생 요청입니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"header": {
"namespace": "Sound",
"name": "Beep",
"messageId": "{{STRING}}",
"dialogRequestId": "{{STRING}}",
"version": "1.0"
},
"payload": {
"playServiceId": "{{STRING}}",
"beepName": "{{STRING}}"
}
}
parameter | type | mandatory | description |
---|---|---|---|
beepName | string | Y | RESPONSE_FAIL: Play 응답 실패 |
1
2
3
4
5
6
7
8
9
10
11
12
{
"header": {
"namespace": "Sound",
"name": "BeepSucceeded",
"messageId": "{{STRING}}",
"dialogRequestId": "{{STRING}}",
"version": "1.0"
},
"payload": {
"playServiceId": "{{STRING}}"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
{
"header": {
"namespace": "Sound",
"name": "BeepFailed",
"messageId": "{{STRING}}",
"dialogRequestId": "{{STRING}}",
"version": "1.0"
},
"payload": {
"playServiceId": "{{STRING}}"
}
}