menu
 
버전
2024.1.4.8780

2024.1.4.8780

2023.1.12.8706

2022.1.18.8567

2021.1.14.8108

2019.2.15.7667

2019.1.11.7296

2018.1.11.6987

2017.2.10.6745

2017.1.9.6501

2016.2.6.6153

2015.1.9.5624


menu_open
대상 플랫폼:
Wwise SDK 2024.1.4
OpenHarmony 관련 정보

이 페이지는 OpenHarmony 플랫폼에서 Wwise SDK를 사용할 때 필요한 정보를 담고 있습니다.

라이선스 요구 사항

OpenHarmony SDK를 다운로드하려면 먼저 프로젝트를 등록하여(프로젝트 등록하기 참조) 라이선스를 받아야 합니다. 프로젝트가 승인되면 Audiokinetic 런처의 Deployment Platform(배포 플랫폼) 목록에 OpenHarmony 옵션이 나타납니다.

플랫폼 요구 사항

OpenHarmony 플랫폼에서 Wwise SDK를 사용하려면 HarmonyOS NEXT SDK를 설치해야 합니다. 필요한 버전은 해당 버전의 OpenHarmony 릴리즈 노트 를 참조하세요.

OpenHarmony에서 샘플 플러그인을 빌드하려면 HarmonyOS NEXT SDK에 포함된 CMake 도구가 필요합니다.

OpenHarmony ABI

프리컴파일된 Wwise SDK 라이브러리는 다음과 같이 컴파일됩니다.

  • arm64-v8a

추후 다른 ABI에 대한 프리컴파일된 지원이 추가될 수도 있습니다.

SoundBanks 배포와 로딩하기

OpenHarmony에서 SoundBank를 배포하고 로딩하는 방법에는 두 가지가 있습니다.

OpenHarmony 애플리케이션 패키지의 일부로 SoundBank 배포하기 (HAP)

HAP를 빌드하기 전에 사운드 엔진을 실행하는 OpenHarmony 모듈의 src/main/resources/rawfile 하위 폴더에 SoundBank와 미디어 파일을 넣으세요. 이 위치에 있는 파일들은 빌드 시 HAP에 패키징됩니다.

그런 다음, 애플리케이션이 네이티브 코드에서 다음 작업을 수행해야 합니다.

  1. OpenHarmony 네이티브 API를 사용하여 NativeResourceManager 객체를 생성합니다.
  2. SDK/samples/SoundEngine/OpenHarmony 디렉터리에 있는 샘플 하위-레벨 I/O 후크인 CAkDefaultIOHookDeferred 를 인스턴스화합니다.
  3. CAkDefaultIOHookDeferred::UseResourceManager() 를 호출하고 첫 번째 단계에서 만든 리소스 관리자 객체를 전달합니다.
  4. 마지막으로, CAkDefaultIOHookDeferred::AddBasePath() 를 호출하고 rawfile:// 접두어를 붙여 rawfile 디렉터리에 대한 상대 경로를 전달합니다. 예를 들어, src/main/resources/rawfile/StreamingAssets/Wwise 에 SoundBanks를 배치한 경우 기본 경로 rawfile://StreamingAssets/Wwise를를 지정합니다.
info

참고: Wwise SDK에 포함된 샘플 하위-레벨 I/O 후크를 사용하지 않는 경우, OpenHarmony의 rawfile API를 사용하여 패키징된 파일을 읽기 위한 자체 I/O 후크를 구현해야 합니다.

OpenHarmony의 rawfile API는 읽기 전용이므로 rawfile:// 접두어가 붙은 기본 경로 또한 읽기 전용입니다. 샘플 하위-레벨 I/O 후크는 이러한 위치에서 파일을 쓰기 모드로 열려고 시도하지 않습니다.

SoundBank를 OpenHarmony POSIX 파일 시스템에 직접 배포하기

SoundBank는 장치의 파일 시스템 어디에서든 배포할 수 있습니다. CAkDefaultIOHookDeferred::AddBasePath() 로 원하는 만큼 디렉터리를 여러 개 추가할 수 있습니다. rawfile:// 접두어가 붙지 않은 모든 기본 경로는 표준 POSIX 파일 시스템 경로로 해석되고, 파일은 표준 POSIX 파일 I/O 함수를 사용하여 읽고 씁니다. 쓰기 모드로 열어야 하는 파일은 이러한 경로만 사용합니다.

I/O 시스템은 가장 최근에 추가된 경로부터 시작하여 역순으로 지정된 경로에서 파일을 검색합니다.

하위-레벨 I/O 하위 모듈을 구현하는 방법은 Low-Level I/O 를 참조하세요.

Handling application lifecycle events

Audio interruptions

Wwise handles audio interruptions (such as incoming calls or alarms) automatically. Wwise suspends the sound engine during an interruption and reactivates it when the interruption ends.

Transitions to background

By default, Wwise keeps playing back audio even when the app loses focus and is hidden from view. To stop playback when the app is out of focus, call AK::SoundEngine::Suspend when the app is hidden, and AK::SoundEngine::WakeupFromSuspend when the app is shown. You can register Event listeners for these transitions from ArkTS through the Window module, or from C/C++ using the Xcomponent module.

Refer to Integration Demo 예제 for an example of how to handle Xcomponent's SurfaceHide and SurfaceShow callbacks to suspend and resume the sound engine.

Using OpenHarmony 장치에서 커뮤니케이션 사용하기

Communication 모듈을 성공적으로 초기화하려면 애플리케이션 모듈에서 ohos.permission.INTERNET 권한을 요청해야 합니다. OS에서 이 권한을 부여하면 Communication 모듈이 적절한 TCP 및 UDP 포트를 열어 Wwise Profiler와 통신할 수 있습니다.

Communication 모듈을 초기화하는 방법에 대한 자세한 내용은 커뮤니케이션 초기화 를 참조하세요.

OpenHarmony 장치에서 Wwise Motion 사용하기

Wwise Motion이 제대로 작동하도록 하려면 애플리케이션 모듈에서 ohos.permission.VIBRATE 권한을 요청해야 합니다. OS에서 이 권한을 부여하면 Wwise Motion이 기기를 올바르게 진동시킬 수 있습니다.

OpenHarmony 장치의 진동 기능은 매우 거칠며, 미세하게 조정된 고해상도 햅틱 피드백을 허용하지 않습니다. 이 플랫폼에서 Wwise Motion을 사용할 때에는 고정된 강도의 럼블 효과와 단기간 지속되는 UI 햅틱 피드백 펄스에 적용하는 것이 가장 적합합니다.

OpenHarmony 릴리즈 노트


이 페이지가 도움이 되었나요?

지원이 필요하신가요?

질문이 있으신가요? 문제를 겪고 계신가요? 더 많은 정보가 필요하신가요? 저희에게 문의해주시면 도와드리겠습니다!

지원 페이지를 방문해 주세요

작업하는 프로젝트에 대해 알려주세요. 언제든지 도와드릴 준비가 되어 있습니다.

프로젝트를 등록하세요. 아무런 조건이나 의무 사항 없이 빠른 시작을 도와드리겠습니다.

Wwise를 시작해 보세요