diff --git a/BUILD.gn b/BUILD.gn index 4ab304bcd7fff19edd4bee771aa9cde683cd8308..1238ab7e27d14d5a96398206ca743a5aebac4b7c 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -13,15 +13,6 @@ import("//build/ohos.gni") -group("audio_packages") { - public_deps = [ - "interfaces/inner_api/native/audiocapturer:audio_capturer", - "interfaces/inner_api/native/audiomanager:audio_client", - "interfaces/inner_api/native/audiorenderer:audio_renderer", - "services:audio_service", - ] -} - group("libsl") { public_deps = [ "//third_party/openSLES:libSLES" ] } diff --git a/bundle.json b/bundle.json index b7af76f8c8e5758414aa75a14b61b992c7ac1fc1..7110138f7ace7b934a794f28b52ce820ba9b283f 100644 --- a/bundle.json +++ b/bundle.json @@ -47,24 +47,21 @@ "base_group": [ ], "fwk_group": [ - "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_manager:audio", - "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_manager:audio_js", + "//foundation/multimedia/audio_framework/interfaces/kits/js:audio", "//foundation/multimedia/audio_framework/frameworks/native/opensles:opensles", "//foundation/multimedia/audio_framework/frameworks/native/pulseaudio:pulseaudio_packages" ], "service_group": [ - "//foundation/multimedia/audio_framework/services:audio_service", - "//foundation/multimedia/audio_framework/services:pulseaudio.rc", - "//foundation/multimedia/audio_framework/services:audio_policy_service_packages", "//foundation/multimedia/audio_framework/sa_profile:audio_service_sa_profile", + "//foundation/multimedia/audio_framework/services/audio_service:audio_service_packages", "//foundation/multimedia/audio_framework/sa_profile:audio_policy_service_sa_profile", - "//foundation/multimedia/audio_framework/frameworks/native/audioadapter:pulse_audio_service_adapter" + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_packages" ] }, "inner_kits": [ { "type": "none", - "name": "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", + "name": "//foundation/multimedia/audio_framework/services/audio_service:audio_client", "header": { "header_files": [ "audio_system_manager.h", @@ -104,7 +101,7 @@ }, { "type": "none", - "name": "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_manager:audio", + "name": "//foundation/multimedia/audio_framework/interfaces/kits/js:audio", "header": { "header_files": [ "audio_manager_napi.h", @@ -135,8 +132,9 @@ "//foundation/multimedia/audio_framework/test:audio_unit_test", "//foundation/multimedia/audio_framework/test:audio_module_test", "//foundation/multimedia/audio_framework/test:audio_fuzz_test", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client_test_packages", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_multichannel_test", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client_test_packages", + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_test", + "//foundation/multimedia/audio_framework/services/audio_service:audio_multichannel_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_latency_accuracy_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_render_mode_callback_test", @@ -144,7 +142,6 @@ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_interrupt_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:interrupt_multi_renderer_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer:audio_capturer_test_packages", - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy:audio_policy_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/opensles:audio_opensles_test", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/opensles:audio_opensles_capture_test" ] diff --git a/frameworks/native/audiopolicy/BUILD.gn b/frameworks/native/audiopolicy/BUILD.gn deleted file mode 100644 index 62357a481b6d91edc0c82d90d4cf44dab3add9bc..0000000000000000000000000000000000000000 --- a/frameworks/native/audiopolicy/BUILD.gn +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (c) 2021-2022 Huawei Device Co., Ltd. -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import("//build/ohos.gni") - -config("audio_policy_public_config") { - include_dirs = [ - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", - "//foundation/systemabilitymgr/safwk/services/safwk/include", - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include/audio_policy/common", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server", - "//foundation/multimedia/audio_framework/services/include/audio_policy/client", - "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", - "//foundation/multimedia/image/mock/native/include/foundation/multimedia/image/mock/native/include", - "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include", - "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", - "//utils/system/safwk/native/include", - "//commonlibrary/c_utils/base/include", - "//third_party/bounds_checking_function/include", - ] - - cflags = [ - "-Wall", - "-Werror", - ] - - if (target_cpu == "arm") { - cflags += [ "-DBINDER_IPC_32BIT" ] - } -} - -ohos_shared_library("audio_policy_client") { - install_enable = true - sources = [ - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_capturer_state_change_listener_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_client_tracker_callback_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_device_descriptor.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_policy_manager.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_policy_manager_listener_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_policy_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_renderer_state_change_listener_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_ringermode_update_listener_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_volume_group_info.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_volume_key_event_callback_stub.cpp", - ] - - public_configs = [ ":audio_policy_public_config" ] - - external_deps = [ - "c_utils:utils", - "hiviewdfx_hilog_native:libhilog", - "ipc:ipc_core", - "safwk:system_ability_fwk", - "samgr:samgr_proxy", - ] - subsystem_name = "multimedia" - part_name = "multimedia_audio_framework" -} - -ohos_executable("audio_policy_test") { - install_enable = false - - sources = [ "//foundation/multimedia/audio_framework/services/test/audio_policy_test.cpp" ] - - configs = [ ":audio_policy_public_config" ] - - deps = [ - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy:audio_policy_client", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", - "//third_party/bounds_checking_function:libsec_static", - ] - - external_deps = [ - "c_utils:utils", - "hiviewdfx_hilog_native:libhilog", - ] - - part_name = "multimedia_audio_framework" - subsystem_name = "multimedia" -} diff --git a/frameworks/native/bluetoothclient/BUILD.gn b/frameworks/native/bluetoothclient/BUILD.gn index 0950cab9bfc88cab8b8819a8916bf3eea1713e56..0eca740e70bd28ab66b4ea104424c8d17322a5b0 100644 --- a/frameworks/native/bluetoothclient/BUILD.gn +++ b/frameworks/native/bluetoothclient/BUILD.gn @@ -29,7 +29,7 @@ ohos_shared_library("audio_bluetooth_client") { "//foundation/communication/bluetooth/interfaces/inner_api/include/c_header", "//foundation/communication/bluetooth/services/bluetooth/common/", "//foundation/communication/bluetooth/services/bluetooth/ipc/include", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/interface", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/interface", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//commonlibrary/c_utils/base/include", "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", diff --git a/frameworks/native/opensles/BUILD.gn b/frameworks/native/opensles/BUILD.gn index d3d68c5924bbda58b9cd1e3bc536e5da83d9aa90..e566ce7a8b82d60e04d2de8f4452802b81269feb 100644 --- a/frameworks/native/opensles/BUILD.gn +++ b/frameworks/native/opensles/BUILD.gn @@ -27,8 +27,7 @@ config("audio_config") { "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiosession/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/services/test", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", @@ -77,8 +76,8 @@ ohos_shared_library("opensles") { deps = [ "//foundation/multimedia/audio_framework:libsl", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer:audio_capturer", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ diff --git a/interfaces/inner_api/native/audiocapturer/BUILD.gn b/interfaces/inner_api/native/audiocapturer/BUILD.gn index 691859dd46bbf8240601bcfdd565c69b57e56b82..d7ed601e3ce36d3dda69f45c9692da60ba8c3ef5 100644 --- a/interfaces/inner_api/native/audiocapturer/BUILD.gn +++ b/interfaces/inner_api/native/audiocapturer/BUILD.gn @@ -26,8 +26,7 @@ config("audio_capturer_config") { "//foundation/multimedia/audio_framework/frameworks/native/audiosession/include", "//foundation/multimedia/audio_framework/frameworks/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "$pulseaudio_dir/src", "$pulseaudio_dir/confgure/src", ] @@ -48,7 +47,7 @@ ohos_shared_library("audio_capturer") { "//foundation/multimedia/audio_framework/frameworks/native/audiocapturer/src/audio_capturer_proxy_obj.cpp", ] - deps = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client" ] + deps = [ "//foundation/multimedia/audio_framework/services/audio_service:audio_client" ] public_configs = [ ":audio_external_library_config" ] diff --git a/interfaces/inner_api/native/audiorenderer/BUILD.gn b/interfaces/inner_api/native/audiorenderer/BUILD.gn index 474793b96fe8c3d57770f406ddd54d692777c095..a7abaa661696ef0a2f1f5aaac2356c37a9e7b5a8 100644 --- a/interfaces/inner_api/native/audiorenderer/BUILD.gn +++ b/interfaces/inner_api/native/audiorenderer/BUILD.gn @@ -23,8 +23,7 @@ config("audio_renderer_config") { "//foundation/multimedia/audio_framework/frameworks/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/services/test", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", @@ -48,8 +47,8 @@ ohos_shared_library("audio_renderer") { ] deps = [ - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy:audio_policy_client", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] public_configs = [ ":audio_external_library_config" ] @@ -124,8 +123,7 @@ ohos_executable("audio_voip_test") { "//foundation/multimedia/audio_framework/frameworks/native/audiosession/include", "//foundation/multimedia/audio_framework/frameworks/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", "$pulseaudio_dir/confgure/src", @@ -158,7 +156,7 @@ ohos_executable("audio_interrupt_test") { deps = [ ":audio_renderer", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] diff --git a/interfaces/inner_api/native/audioringtone/BUILD.gn b/interfaces/inner_api/native/audioringtone/BUILD.gn index 9bab4f31b44da1ec2f0e0bb21fbee81eab3c2a87..4138e0c766ce491cd77b499324ce3c7920871e34 100644 --- a/interfaces/inner_api/native/audioringtone/BUILD.gn +++ b/interfaces/inner_api/native/audioringtone/BUILD.gn @@ -23,7 +23,7 @@ ohos_shared_library("audio_ringtone_client") { include_dirs = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audioringtone/include", "//foundation/multimedia/audio_framework/frameworks/native/ringtoneplayer/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//foundation/multimedia/media_library/interfaces/inner_api/media_library_helper/include", ] diff --git a/interfaces/inner_api/native/opensles/BUILD.gn b/interfaces/inner_api/native/opensles/BUILD.gn index 653ffb59f39f300f5838406935cbfa4f903f3c26..b07ba1b3892b8c037ef5daca07c3b0229bd7e04a 100644 --- a/interfaces/inner_api/native/opensles/BUILD.gn +++ b/interfaces/inner_api/native/opensles/BUILD.gn @@ -26,8 +26,7 @@ config("audio_operation_config") { "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiosession/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/services/test", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", diff --git a/interfaces/kits/js/@ohos.multimedia.audio.d.ts b/interfaces/kits/js/@ohos.multimedia.audio.d.ts deleted file mode 100644 index b2b7f82c1b5c58198d5fc57008d6470de1ba44b3..0000000000000000000000000000000000000000 --- a/interfaces/kits/js/@ohos.multimedia.audio.d.ts +++ /dev/null @@ -1,1498 +0,0 @@ -/* -* Copyright (c) 2021-2022 Huawei Device Co., Ltd. -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import {ErrorCallback, AsyncCallback, Callback} from './basic'; -import Context from './@ohos.ability'; - -/** - * @name audio - * @SysCap SystemCapability.Multimedia.Audio - * @devices phone, tablet, wearable, car - * @since 7 - */ -declare namespace audio { - - /** - * Gets the AudioManager instance. - * @param context Current application context. - * @return AudioManager instance. - * @since 8 - */ - function getAudioManager(context?: Context): AudioManager; - - /** - * the type of audio stream - * @since 7 - */ - enum AudioVolumeType { - /** - * the ringtone stream - * @since 7 - */ - VOICE_CALL = 0, - /** - * the ringtone stream - * @since 7 - */ - RINGTONE = 2, - /** - * the media stream - * @since 7 - */ - MEDIA = 3, - } - - /** - * the flag type of device - * @since 7 - */ - enum DeviceFlag { - /** - * the device flag of output - * @since 7 - */ - OUTPUT_DEVICES_FLAG = 1, - /** - * the device flag of input - * @since 7 - */ - INPUT_DEVICES_FLAG = 2, - /** - * the device flag of all devices - * @since 7 - */ - ALL_DEVICES_FLAG = 3, - } - /** - * the role of device - */ - enum DeviceRole { - /** - * the role of input devices - * @since 7 - */ - INPUT_DEVICE = 1, - /** - * the role of output devices - * @since 7 - */ - OUTPUT_DEVICE = 2, - } - /** - * the type of device - * @since 7 - */ - enum DeviceType { - /** - * invalid - * @since 7 - */ - INVALID = 0, - /** - * speaker - * @since 7 - */ - SPEAKER = 2, - /** - * wired headset - * @since 7 - */ - WIRED_HEADSET = 3, - /** - * bluetooth sco - * @since 7 - */ - BLUETOOTH_SCO = 7, - /** - * bluetooth a2dp - * @since 7 - */ - BLUETOOTH_A2DP = 8, - /** - * mic - * @since 7 - */ - MIC = 15, - } - - /** - * Enumerates device types. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - enum ActiveDeviceType { - /** - * Speaker. - */ - SPEAKER = 2, - - /** - * Bluetooth. - */ - BLUETOOTH_SCO = 7, - } - - /** - * Enumerates ringer modes. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - enum AudioRingMode { - /** - * Silent mode. - */ - RINGER_MODE_SILENT = 0, - - /** - * Vibration mode. - */ - RINGER_MODE_VIBRATE = 1, - - /** - * Normal mode. - */ - RINGER_MODE_NORMAL = 2, - } - - /** - * Enumerates device change types. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - enum DeviceChangeType { - /** - * Device connection. - */ - CONNECT = 0, - - /** - * Device disconnection. - */ - DISCONNECT = 1, - } - - /** - * Describes the device change type and device information. - */ - interface DeviceChangeAction { - /** - * Device change type. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - type: DeviceChangeType; - - /** - * Device information. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - deviceDescriptors: AudioDeviceDescriptors; - } - - /** - * the audiomanager of the audio - * @since 7 - */ - interface AudioManager { - /** - * set the volume of the audiovolumetype - * @since 7 - */ - setVolume(audioType: AudioVolumeType,volume: number, callback: AsyncCallback): void; - /** - * set the volume of the audiovolumetype - * @since 7 - */ - setVolume(audioType: AudioVolumeType,volume: number): Promise; - /** - * get the volume of the audiovolumetype - * @since 7 - */ - getVolume(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * get the volume of the audiovolumetype - * @since 7 - */ - getVolume(audioType: AudioVolumeType): Promise; - /** - * get the min volume of the audiovolumetype - * @since 7 - */ - getMinVolume(audioType: AudioVolumeType, callback: AsyncCallback): void - /** - * get the min volume of the audiovolumetype - * @since 7 - */ - getMinVolume(audioType: AudioVolumeType): Promise; - /** - * get the max volume of the audiovolumetype - * @since 7 - */ - getMaxVolume(audioType: AudioVolumeType, callback: AsyncCallback): void - /** - * get the max volume of the audiovolumetype - * @since 7 - */ - getMaxVolume(audioType: AudioVolumeType): Promise; - /** - * Determines whether audio streams of a given type are muted. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @param callback Callback used to return the mute status of the stream. The value true means that the stream - * is muted,and false means the opposite. - */ - isMute(volumeType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Checks whether a stream is muted. This method uses an asynchronous callback to return the query result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @return return A Promise instance used to return the mute status of the stream. The value true means that the - * stream is muted, and false means the opposite. - */ - isMute(volumeType: AudioVolumeType): Promise; - - /** - * Checks whether a stream is muted. This method uses a promise to return the query result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @param mute Whether to mute the stream. The value true meas to mute the stream, and false means the opposite. - * @param callback Callback used to return the execution result. - */ - mute(volumeType: AudioVolumeType, mute: boolean, callback: AsyncCallback): void; - /** - * Mutes or unmutes a stream. This method uses a promise to return the execution result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @param mute Whether to mute the stream. The value true meas to mute the stream, and false means the opposite. - * @return return A Promise instance used to return the execution result. - */ - mute(volumeType: AudioVolumeType, mute: boolean): Promise; - /** - * Checks whether a stream is active, that is, whether a stream is being played rather than being stopped or paused. - * This method uses an asynchronous callback to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @param callback Callback used to return the stream activation status. The value true means that the stream is - * active,and false means the opposite. - */ - isActive(volumeType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Checks whether a stream is active, that is, whether a stream is being played rather than being stopped or paused. - * This method uses a promise to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param volumeType Audio stream type. - * @return return A Promise instance used to return the stream activation status. The value true means that the - * stream is active,and false means the opposite. - */ - isActive(volumeType: AudioVolumeType): Promise; - /** - * Checks whether the microphone is muted. This method uses an asynchronous callback to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param callback Callback used to return the mute status of the microphone. The value true means that - * the microphone is muted, and false means the opposite. - * @permission "ohos.permission.MICROPHONE" - */ - isMicrophoneMute(callback: AsyncCallback): void; - /** - * Checks whether the microphone is muted. This method uses a promise to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @return return A Promise instance used to return the mute status of the microphone. The value true means - * that the microphone is muted, and false means the opposite. - * @permission "ohos.permission.MICROPHONE" - */ - isMicrophoneMute(): Promise; - /** - * Mutes or unmutes the microphone. This method uses an asynchronous callback to return the execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param mute Mute status to set. The value true means to mute the microphone, and false means the opposite. - * @param callback Callback used to return the execution result. - * @permission "ohos.permission.MICROPHONE" - */ - setMicrophoneMute(mute: boolean, callback: AsyncCallback): void; - /** - * Mutes or unmutes the microphone. This method uses a promise to return the execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param mute Mute status to set. The value true means to mute the microphone, and false means the opposite. - * @return return A Promise instance used to return the execution result. - * @permission "ohos.permission.MICROPHONE" - */ - setMicrophoneMute(mute: boolean): Promise; - /** - * get the device list of the audio devices by the audio flag - * @since 7 - */ - getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback): void; - /** - * get the device list of the audio devices by the audio flag - * @since 7 - */ - getDevices(deviceFlag: DeviceFlag): Promise; - /** - * Checks whether a type of device is active. This method uses an asynchronous callback to return the - * query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param deviceType Audio device type. - * @param callback Callback used to return the active status of the device. - */ - isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback): void; - /** - * Checks whether a type of device is active. This method uses a promise to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param deviceType Audio device type. - * @return return A Promise instance used to return the active status of the device. - */ - isDeviceActive(deviceType: ActiveDeviceType): Promise; - /** - * Sets a type of device to the active state. This method uses an asynchronous callback to return the - * execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param deviceType Audio device type. - * @param active Active status to set. The value true means to set the device to the active status, - * and false means the opposite. - * @param callback Callback used to return the execution result. - */ - setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback): void; - /** - * Sets a type of device to the active state. This method uses a promise to return the execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param deviceType Audio device type. - * @param active Active status to set. The value true means to set the device to the active status, - * and false means the opposite - * @return return A Promise instance used to return the execution result. - */ - setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise; - /** - * Sets an audio parameter. This method uses an asynchronous callback to return the execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param key Key of the audio parameter to set. - * @param value Value of the audio parameter to set. - * @param callback Callback used to return the execution result. - * @permission "ohos.permission.MODIFY_AUDIO_SETTINGS" - */ - setAudioParameter(key: string, value: string, callback: AsyncCallback): void; - /** - * Sets an audio parameter. This method uses a promise to return the execution result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param key Key of the audio parameter to set. - * @param value Value of the audio parameter to set. - * @return return A Promise instance used to return the execution result. - * @permission "ohos.permission.MODIFY_AUDIO_SETTINGS" - */ - setAudioParameter(key: string, value: string): Promise; - /** - * Obtains the value of an audio parameter. This method uses an asynchronous callback to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param key Key of the audio parameter whose value is to be obtained. - * @param callback Callback used to return the value of the audio parameter. - */ - getAudioParameter(key: string, callback: AsyncCallback): void; - /** - * Obtains the value of an audio parameter. This method uses a promise to return the query result. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param key Key of the audio parameter whose value is to be obtained. - * @return return A Promise instance used to return the value of the audio parameter. - */ - getAudioParameter(key: string): Promise; - /** - * Sets the ringer mode. This method uses an asynchronous callback to return the execution result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param mode Ringer mode to set. - * @param callback Callback used to return the execution result. - * @permission "ohos.permission.ACCESS_NOTIFICATION_POLICY" - */ - setRingerMode(mode: AudioRingMode, callback: AsyncCallback): void; - /** - * Sets the ringer mode. This method uses a promise to return the execution result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param mode Ringer mode to set. - * @return return A Promise instance used to return the execution result. - * @permission "ohos.permission.ACCESS_NOTIFICATION_POLICY" - */ - setRingerMode(mode: AudioRingMode): Promise; - /** - * Obtains the ringer mode. This method uses an asynchronous callback to return the query result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param callback Callback used to return the ringer mode. - */ - getRingerMode(callback: AsyncCallback): void; - /** - * Obtains the ringer mode. This method uses a promise to return the query result. - * @devices phone, tablet, tv, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @return return A Promise instance used to return the ringer mode. - */ - getRingerMode(): Promise; - /** - * Listens for device change events. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param type Type of the event to listen for. Only the deviceChange event is supported. - * This event is triggered when a device change is detected. - * @param callback Callback invoked for the device change event. - */ - on(type: 'deviceChange', callback: Callback): void; - /** - * Cancels the listening of device change events. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - * @param type Type of the event for which the listening is to be canceled. Only the deviceChange event is supported. - * @param callback Callback invoked for the device change event. - */ - off(type: 'deviceChange', callback?: Callback): void; - /** - * Set audio scene mode to change audio strategy. - * @param scene audio scene mode to set. - * @since 8 - */ - setAudioScene(scene: AudioScene, callback: AsyncCallback): void; - setAudioScene(scene: AudioScene): Promise; - - /** - * Get system audio scene mode. - * @return Current audio scene mode. - * @since 8 - */ - getAudioScene(callback: AsyncCallback): void; - getAudioScene(): Promise; - - /** - * Subscribes volume change event callback, only for system - * @param type Event type. - * @return Volume value callback. - * @since 8 - */ - on(type: 'volumeChange', volumeType: AudioVolumeType, callback: Callback): void; - - /** - * Subscribes volume change event callback, only for system - * @param type Event type. - * @return Volume value callback. - * @since 8 - */ - on(type: 'ringerModeChange', callback: Callback): void; - - /** - * Request independent interrupt event. - * @param focusType The focus type. - * @param callback Callback used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - * @systemapi - */ - requestIndependentInterrupt(focusType: FocusType, callback: AsyncCallback): void; - - /** - * Request independent interrupt event. - * @param focusType The focus type. - * @return Promise used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - * @systemapi - */ - requestIndependentInterrupt(focusType: FocusType): Promise; - - /** - * Abandon the requested independent interrupt event. - * @param focusType The focus type. - * @param callback Callback used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - * @systemapi - */ - abandonIndependentInterrupt(focusType: FocusType, callback: AsyncCallback): void; - - /** - * Abandon the requested independent interrupt event. - * @param focusType The focus type. - * @return Promise used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - * @systemapi - */ - abandonIndependentInterrupt(focusType: FocusType): Promise; - } - - enum InterruptMode{ - SHARE_MODE = 0, - INDEPENDENT_MODE = 1 - } - - enum FocusType { - FOCUS_TYPE_RECORDING - } - - /** - * Enum for audio scene. - * @since 8 - */ - enum AudioScene { - /** - * Default audio scene. - * @since 8 - */ - AUDIO_SCENE_DEFAULT, - /** - * Ringing audio scene. - * Only available for system api. - * @since 8 - */ - AUDIO_SCENE_RINGING, - /** - * Phone call audio scene. - * Only available for system api. - * @since 8 - */ - AUDIO_SCENE_PHONE_CALL, - /** - * Voice chat audio scene. - * @since 8 - */ - AUDIO_SCENE_VOICE_CHAT - } - - /** - * the Descriptor of the device - * @since 7 - */ - interface AudioDeviceDescriptor { - /** - * the role of device - * @since 7 - */ - readonly deviceRole: DeviceRole; - /** - * the type of device - * @since 7 - */ - readonly deviceType: DeviceType; - } - - /** - * the Descriptor list of the devices - * @since 7 - */ - type AudioDeviceDescriptors = Array>; - - /** - * Creates a AudioRenderer instance. - * @param options All options used for audio renderer. - * @return AudioRenderer instance. - * @since 8 - */ - function createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback): void; - function createAudioRenderer(options: AudioRendererOptions): Promise; - - /** - * Creates a AudioCapturer instance. - * @param options All options used for audio capturer. - * @return AudioCapturer instance. - * @since 8 - */ - function createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback): void; - function createAudioCapturer(options: AudioCapturerOptions): Promise; - - /** - * Enumerates the rendering states of the current device. - * @since 8 - */ - enum AudioState { - /** - * Invalid state. - * @since 8 - */ - STATE_INVALID = -1, - /** - * Create New instance state. - * @since 8 - */ - STATE_NEW, - /** - * Prepared state. - * @since 8 - */ - STATE_PREPARED, - /** - * Running state. - * @since 8 - */ - STATE_RUNNING, - /** - * Stopped state. - * @since 8 - */ - STATE_STOPPED, - /** - * Released state. - * @since 8 - */ - STATE_RELEASED, - /** - * Paused state. - * @since 8 - */ - STATE_PAUSED - } - /** - * Enumerates the sample format. - * @since 8 - */ - enum AudioSampleFormat { - SAMPLE_FORMAT_INVALID = -1, - SAMPLE_FORMAT_U8 = 0, - SAMPLE_FORMAT_S16LE = 1, - SAMPLE_FORMAT_S24LE = 2, - SAMPLE_FORMAT_S32LE = 3, - } - - /** - * Enumerates the audio channel. - * @since 8 - */ - enum AudioChannel { - CHANNEL_1 = 0x1 << 0, - CHANNEL_2 = 0x1 << 1, - CHANNEL_3 = 0x1 << 2, - CHANNEL_4 = 0x1 << 3, - CHANNEL_6 = 0x1 << 4, - CHANNEL_7 = 0x1 << 5, - CHANNEL_8 = 0x1 << 6 - } - - /** - * Enumerates the audio sampling rate. - * @since 8 - */ - enum AudioSamplingRate { - SAMPLE_RATE_8000 = 8000, - SAMPLE_RATE_11025 = 11025, - SAMPLE_RATE_12000 = 12000, - SAMPLE_RATE_16000 = 16000, - SAMPLE_RATE_22050 = 22050, - SAMPLE_RATE_24000 = 24000, - SAMPLE_RATE_32000 = 32000, - SAMPLE_RATE_44100 = 44100, - SAMPLE_RATE_48000 = 48000, - SAMPLE_RATE_64000 = 64000, - SAMPLE_RATE_96000 = 96000 - } - - /** - * Enumerates the audio encoding type. - * @since 8 - */ - enum AudioEncodingType { - /** - * Invalid type. - * @since 8 - */ - ENCODING_TYPE_INVALID = -1, - /** - * Raw pcm type. - * @since 8 - */ - ENCODING_TYPE_RAW = 0, - /** - * Mp3 encoding type. - * @since 8 - */ - ENCODING_TYPE_MP3 = 1, - } - - /** - * Enumerates the audio content type. - * @since 8 - */ - enum ContentType { - /** - * Unknown content. - * @since 8 - */ - CONTENT_TYPE_UNKNOWN = 0, - /** - * Speech content. - * @since 8 - */ - CONTENT_TYPE_SPEECH = 1, - /** - * Music content. - * @since 8 - */ - CONTENT_TYPE_MUSIC = 2, - /** - * Movie content. - * @since 8 - */ - CONTENT_TYPE_MOVIE = 3, - /** - * Notification content. - * @since 8 - */ - CONTENT_TYPE_SONIFICATION = 4, - /** - * Ringtone content. - * @since 8 - */ - CONTENT_TYPE_RINGTONE = 5, - } - - /** - * Enumerates the stream usage. - */ - enum StreamUsage { - /** - * Unknown usage. - * @since 8 - */ - STREAM_USAGE_UNKNOWN = 0, - /** - * Media usage. - * @since 8 - */ - STREAM_USAGE_MEDIA = 1, - /** - * Voice communication usage. - * @since 8 - */ - STREAM_USAGE_VOICE_COMMUNICATION = 2, - /** - * Notification or ringtone usage. - * @since 8 - */ - STREAM_USAGE_NOTIFICATION_RINGTONE = 3, - } - - /** - * Interface for audio stream info - * @since 8 - */ - interface AudioStreamInfo { - /** - * Audio sampling rate - * @since 8 - */ - samplingRate: AudioSamplingRate; - /** - * Audio channels - * @since 8 - */ - channels: AudioChannel; - /** - * Audio sample format - * @since 8 - */ - sampleFormat: AudioSampleFormat; - /** - * Audio encoding type - * @since 8 - */ - encodingType: AudioEncodingType; - } - - /** - * Interface for audio renderer info - * @since 8 - */ - interface AudioRendererInfo { - /** - * Audio content type - * @since 8 - */ - content: ContentType; - /** - * Audio stream usage - * @since 8 - */ - usage: StreamUsage; - /** - * Audio renderer flags - * @since 8 - */ - rendererFlags: number; - } - - /** - * Interface for audio renderer options - * @since 8 - */ - interface AudioRendererOptions { - /** - * Audio stream info - * @since 8 - */ - streamInfo: AudioStreamInfo; - /** - * Audio renderer info - * @since 8 - */ - rendererInfo: AudioRendererInfo; - } - - /** - * Enum for audio renderer rate - * @since 8 - */ - enum AudioRendererRate { - /** - * Normal rate - * @since 8 - */ - RENDER_RATE_NORMAL = 0, - /** - * Double rate - * @since 8 - */ - RENDER_RATE_DOUBLE = 1, - /** - * Half rate - * @since 8 - */ - RENDER_RATE_HALF = 2 - } - - /** - * Enumerates audio interruption event types. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - enum InterruptType { - /** - * An audio interruption event starts. - */ - INTERRUPT_TYPE_BEGIN = 1, - - /** - * An audio interruption event ends. - */ - INTERRUPT_TYPE_END = 2 - } - - /** - * Enumerates the types of hints for audio interruption. - * @devices phone, tablet, tv, wearable, car - * @since 7 - * @SysCap SystemCapability.Multimedia.Audio - */ - enum InterruptHint { - - /** - * Audio resumed. - */ - INTERRUPT_HINT_RESUME = 1, - - /** - * Audio paused. - */ - INTERRUPT_HINT_PAUSE = 2, - - /** - * Audio stopped. - */ - INTERRUPT_HINT_STOP = 3, - - /** - * Audio ducking. (In ducking, the audio volume is reduced, but not silenced.) - */ - INTERRUPT_HINT_DUCK = 4, - - /** - * Audio unducking. - */ - INTERRUPT_HINT_UNDUCK = 5, - } - - /** - * Interrupt force type. - * @since 8 - */ - enum InterruptForceType { - /** - * Force type, system change audio state. - */ - INTERRUPT_FORCE = 0, - /** - * Share type, application change audio state. - */ - INTERRUPT_SHARE - } - - interface InterruptEvent { - /** - * Interrupt event type, begin or end - */ - eventType: InterruptType; - - /** - * Interrupt force type, force or share - */ - forceType: InterruptForceType; - - /** - * Interrupt hint type. In force type, the audio state already changed, - * but in share mode, only provide a hint for application to decide. - */ - hintType: InterruptHint; - } - - /** - * Provides functions for applications for audio playback. - */ - interface AudioRenderer { - /** - * Gets audio state. - * @since 8 - */ - readonly state: AudioState; - - /** - * Gets unique id for audio stream. - * @return Audio stream unique id. - * @since 8 - */ - getAudioStreamUniqueId(callback: AsyncCallback): void; - getAudioStreamUniqueId(): Promise; - - /** - * Gets audio renderer info. - * @return AudioRendererInfo value - * @since 8 - */ - getRendererInfo(callback: AsyncCallback): void; - getRendererInfo(): Promise; - - /** - * Gets audio stream info. - * @return AudioStreamInfo value - * @since 8 - */ - getStreamInfo(callback: AsyncCallback): void; - getStreamInfo(): Promise; - - /** - * Start audio renderer. - * @since 8 - */ - start(callback: AsyncCallback): void; - start(): Promise; - - /** - * Write buffer to audio renderer. - * @param buffer Data buffer write to audio renderer. - * @return Length of the written data. - * @since 8 - */ - write(buffer: ArrayBuffer, callback: AsyncCallback): void; - write(buffer: ArrayBuffer): Promise; - - /** - * Gets audio renderer timestamp. - * @return Audio timestamp. - * @since 8 - */ - getAudioTime(callback: AsyncCallback): void; - getAudioTime(): Promise; - - /** - * Drain audio renderer. - * @since 8 - */ - drain(callback: AsyncCallback): void; - drain(): Promise; - - /** - * Pause audio renderer. - * @since 8 - */ - pause(callback: AsyncCallback): void; - pause(): Promise; - - /** - * Stop audio renderer. - * @since 8 - */ - stop(callback: AsyncCallback): void; - stop(): Promise; - - /** - * Release audio renderer instance. - * @since 8 - */ - release(callback: AsyncCallback): void; - release(): Promise; - - /** - * Gets audio buffer size. - * @return Audio buffer size for written. - * @since 8 - */ - getBufferSize(callback: AsyncCallback): void; - getBufferSize(): Promise; - - /** - * Sets audio renderer rate. - * @param rate Audio renderer rate set to audio renderer. - * @since 8 - */ - setRenderRate(rate: AudioRendererRate, callback: AsyncCallback): void; - setRenderRate(rate: AudioRendererRate): Promise; - - /** - * Gets audio renderer rate. - * @return Current audio renderer rate. - * @since 8 - */ - getRenderRate(callback: AsyncCallback): void; - getRenderRate(): Promise; - - /** - * Subscribes mark reach event callback. - * @param type Event type. - * @param frame Mark reach frame count. - * @return Mark reach event callback. - * @since 8 - */ - on(type: "interrupt", callback: Callback): void; - /** - * Unsubscribes mark reach event callback. - * @since 8 - */ - off(type: "interrupt"): void; - - /** - * Subscribes mark reach event callback. - * @param type Event type. - * @param frame Mark reach frame count. - * @return Mark reach event callback. - * @since 8 - */ - on(type: "markReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes mark reach event callback. - * @since 8 - */ - off(type: "markReach"): void; - - /** - * Subscribes period reach event callback. - * @param type Event type. - * @param frame Period reach frame count. - * @return Period reach event callback. - * @since 8 - */ - on(type: "periodReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes period reach event callback. - * @since 8 - */ - off(type: "periodReach"): void; - - /** - * Set interrupt mode. - * @param mode The interrupt mode. - * @param callback Callback used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - setInterruptMode(mode: InterruptMode, callback: AsyncCallback): void; - /** - * Set interrupt mode. - * @param mode The interrupt mode. - * @return Promise used to return the result. - * @since 9 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - setInterruptMode(mode: InterruptMode): Promise; - } - - /** - * Enum for source type. - * @since 8 - */ - enum SourceType { - /** - * Invalid source type. - * @since 8 - */ - SOURCE_TYPE_INVALID = -1, - /** - * Mic source type. - * @since 8 - */ - SOURCE_TYPE_MIC - } - - /** - * Interface for audio capturer info. - * @since 8 - */ - interface AudioCapturerInfo { - /** - * Audio source type - * @since 8 - */ - source: SourceType; - /** - * Audio capturer flags - * @since 8 - */ - capturerFlags: number; - } - - /** - * Interface for audio capturer options. - * @since 8 - */ - interface AudioCapturerOptions { - /** - * Audio stream info. - * @since 8 - */ - streamInfo: AudioStreamInfo; - /** - * Audio capturer info. - * @since 8 - */ - capturerInfo: AudioCapturerInfo; - } - - /** - * Provides functions for applications to manage audio capturing. - * @since 8 - */ - interface AudioCapturer { - /** - * Gets capture state. - * @since 8 - */ - readonly state: AudioState; - - /** - * Gets unique id for audio stream. - * @return Audio stream unique id. - * @since 8 - */ - getAudioStreamUniqueId(callback: AsyncCallback): void; - getAudioStreamUniqueId(): Promise; - - /** - * Gets audio capturer info. - * @return AudioCapturerInfo value - * @since 8 - */ - getCapturerInfo(callback: AsyncCallback): void; - getCapturerInfo(): Promise; - - /** - * Gets audio stream info. - * @return AudioStreamInfo value - * @since 8 - */ - getStreamInfo(callback: AsyncCallback): void; - getStreamInfo(): Promise; - - /** - * Start audio capturer. - * @since 8 - */ - start(callback: AsyncCallback): void; - start(): Promise; - - /** - * Read buffer from audio capturer. - * @param size Read buffer size. - * @param isBlockingRead Use blocking read or not. - * @return buffer Data buffer read from audio capturer. - * @since 8 - */ - read(size: number, isBlockingRead: boolean, callback: AsyncCallback): void; - read(size: number, isBlockingRead: boolean): Promise; - - /** - * Gets audio capturer timestamp. - * @return Audio timestamp. - * @since 8 - */ - getAudioTime(callback: AsyncCallback): void; - getAudioTime(): Promise; - - /** - * Stop audio capturer. - * @since 8 - */ - stop(callback: AsyncCallback): void; - stop(): Promise; - - /** - * Release audio capturer instance. - * @since 8 - */ - release(callback: AsyncCallback): void; - release(): Promise; - - /** - * Gets audio buffer size. - * @return Audio buffer size for written. - * @since 8 - */ - getBufferSize(callback: AsyncCallback): void; - getBufferSize(): Promise; - - /** - * Subscribes mark reach event callback. - * @param type Event type. - * @param frame Mark reach frame count. - * @return Mark reach event callback. - * @since 8 - */ - on(type: "markReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes mark reach event callback. - * @since 8 - */ - off(type: "markReach"): void; - - /** - * Subscribes period reach event callback. - * @param type Event type. - * @param frame Period reach frame count. - * @return Period reach event callback. - * @since 8 - */ - on(type: "periodReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes period reach event callback. - * @since 8 - */ - off(type: "periodReach"): void; - } - - /** - * Enum for ringtone type. - * @since 8 - */ - enum RingtoneType { - /** - * Default type. - * @since 8 - */ - RINGTONE_TYPE_DEFAULT = 0, - /** - * Multi-sim type. - * @since 8 - */ - RINGTONE_TYPE_MULTISIM - } - - /** - * Interface for ringtone options. - * @since 8 - */ - interface RingtoneOptions { - /** - * Ringtone volume. - * @since 8 - */ - volume: number; - /** - * Loop value. - * @since 8 - */ - loop: boolean; - } - - /** - * Ringtone player object. - * @since 8 - */ - interface RingtonePlayer { - /** - * Gets player state. - * @since 8 - */ - readonly state: AudioState; - - /** - * Gets the title of ringtone. - * @since 8 - */ - getTitle(callback: AsyncCallback): void; - getTitle(): Promise; - - /** - * Gets audio renderer info. - * @return AudioRendererInfo value - * @since 8 - */ - getAudioRendererInfo(callback: AsyncCallback): void; - getAudioRendererInfo(): Promise; - - /** - * Configure ringtone options. - * @param options Ringtone configure options. - * @since 8 - */ - configure(options: RingtoneOptions, callback: AsyncCallback): void; - configure(options: RingtoneOptions): Promise; - - /** - * Starts playing ringtone - * @since 8 - */ - start(callback: AsyncCallback): void; - start(): Promise; - - /** - * Stop playing ringtone - * @since 8 - */ - stop(callback: AsyncCallback): void; - stop(): Promise; - - /** - * Release ringtone player resource - * @since 8 - */ - release(callback: AsyncCallback): void; - release(): Promise; - } - - /** - * Gets system sound manager for all type sound. - * @return SystemSoundManager instance. - * @since 8 - */ - function getSystemSoundManager(): SystemSoundManager; - - /** - * System sound manager object. - * @since 8 - */ - interface SystemSoundManager { - /** - * Sets the ringtone uri to system. - * @param context Current application context. - * @param uri Ringtone uri to set. - * @param type Ringtone type to set. - * @since 8 - */ - setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType, callback: AsyncCallback): void; - setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType): Promise; - /** - * Gets the ringtone uri. - * @param context Current application context. - * @param type Ringtone type to get. - * @return Ringtone uri maintained in system. - * @since 8 - */ - getSystemRingtoneUri(context: Context, type: RingtoneType, callback: AsyncCallback): void; - getSystemRingtoneUri(context: Context, type: RingtoneType): Promise; - /** - * Gets the ringtone player. - * @param context Current application context. - * @param type Ringtone type to get. - * @return Ringtone player maintained in system. - * @since 8 - */ - getSystemRingtonePlayer(context: Context, type: RingtoneType, callback: AsyncCallback): void; - getSystemRingtonePlayer(context: Context, type: RingtoneType): Promise; - - /** - * Sets the notification uri to system. - * @param context Current application context. - * @param uri Ringtone uri to set. - * @since 8 - */ - setSystemNotificationUri(context: Context, uri: string, callback: AsyncCallback): void; - setSystemNotificationUri(context: Context, uri: string): Promise; - /** - * Gets the notification uri. - * @param context Current application context. - * @return Notification uri maintained in system. - * @since 8 - */ - getSystemNotificationUri(context: Context, callback: AsyncCallback): void; - getSystemNotificationUri(context: Context): Promise; - - /** - * Sets the alarm uri to system. - * @param context Current application context. - * @param uri Alarm uri to set. - * @since 8 - */ - setSystemAlarmUri(context: Context, uri: string, callback: AsyncCallback): void; - setSystemAlarmUri(context: Context, uri: string): Promise; - /** - * Gets the alarm uri. - * @param context Current application context. - * @return Alarm uri maintained in system. - * @since 8 - */ - getSystemAlarmUri(context: Context, callback: AsyncCallback): void; - getSystemAlarmUri(context: Context): Promise; - } -} - -export default audio; \ No newline at end of file diff --git a/interfaces/kits/js/@ohos.multimedia.session.d.ts b/interfaces/kits/js/@ohos.multimedia.session.d.ts deleted file mode 100644 index a71888ea0558916d5f0d4dc1919b8b6aca00ed4b..0000000000000000000000000000000000000000 --- a/interfaces/kits/js/@ohos.multimedia.session.d.ts +++ /dev/null @@ -1,188 +0,0 @@ -/* -* Copyright (c) 2021-2022 Huawei Device Co., Ltd. -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import {ErrorCallback, AsyncCallback, Callback} from './basic'; -import Context from './@ohos.ability'; -import image from './@ohos.multimedia.image'; - -/** - * @name session - * @sysCap SystemCapability.Multimedia.Session - * @import import audio from '@ohos.multimedia.session'; - */ -declare namespace session { - - function getSystemSessionManager(context: Context): SystemSessionManager; - - interface SystemSessionManager { - listAllSessionDescriptors(callback: AsyncCallback>): void; - listAllSessionDescriptors(): Promise>; - - findSessionDescriptiorByTag(tag: string, callback: AsyncCallback): void; - findSessionDescriptiorByTag(tag: string): Promise; - - createSessionController(sessionId: number, context: Context, callback: AsyncCallback): void; - createSessionController(sessionId: number, context: Context): Promise; - } - - interface SessionDescriptor { - // Unique id for session - readonly sessionId: number; - - readonly tag: string; - - readonly bundleName: string; - - readonly active: boolean; - } - - function createSession(context: Context, tag: string, callback: AsyncCallback): void; - function createSession(context: Context, tag: string): Promise; - - interface Session { - updateActiveState(active: boolean, callback: AsyncCallback): void; - updateActiveState(active: boolean): Promise; - - updateAVPlaybackState(state: AVPlaybackState, callback: AsyncCallback): void; - updateAVPlaybackState(state: AVPlaybackState): Promise; - - updateAVMetadata(meta: AVMetadata, callback: AsyncCallback): void; - updateAVMetadata(meta: AVMetadata): Promise; - - on(type: 'permissionCheck', callback: (pid: number, uid: number, bundleName: string) => {}): void; - - on(type: 'play', callback: () => {}): void; - - on(type: 'pause', callback: () => {}): void; - - on(type: 'stop', callback: () => {}): void; - - on(type: 'playNext', callback: () => {}): void; - - on(type: 'playPrevious', callback: () => {}): void; - - on(type: 'seek', callback: Callback): void; - - on(type: 'setSpeed', callback: Callback): void; - - release(callback: AsyncCallback): void; - release(): Promise; - } - - interface SessionController { - getAVPlaybackState(callback: AsyncCallback): void; - getAVPlaybackState(): Promise; - - getAVMetadata(callback: AsyncCallback): void; - getAVMetadata(): Promise; - - sendCommandToPlay(callback: AsyncCallback): void; - sendCommandToPlay(): Promise; - - sendCommandTolPause(callback: AsyncCallback): void; - sendCommandTolPause(): Promise; - - sendCommandToStop(callback: AsyncCallback): void; - sendCommandToStop(): Promise; - - sendCommandToPlayNext(callback: AsyncCallback): void; - sendCommandToPlayNext(): Promise; - - sendCommandToPlayPrevious(callback: AsyncCallback): void; - sendCommandToPlayPrevious(): Promise; - - sendCommandToPlay(timeMs: number, callback: AsyncCallback): void; - sendCommandToSeek(timeMs: number): Promise; - - sendCommandToSetSpeed(speed: number, callback: AsyncCallback): void; - sendCommandToSetSpeed(speed: number): Promise; - - on(type: 'sessionRelease', callback: () => {}): void; - - on(type: 'playbackStateUpdate', callback: (state: AVPlaybackState) => {}): void; - - on(type: 'metadataUpdate', callback: (meta: AVMetadata) => {}): void; - - release(callback: AsyncCallback): void; - release(): Promise; - } - - interface AVPlaybackState { - - readonly state: PlaybackState; - - readonly currentTime: number; - } - - enum PlaybackState { - /** - * Invalid state. - * @since 8 - */ - PLAYBACK_STATE_INVALID = -1, - /** - * Create New instance state. - * @since 8 - */ - PLAYBACK_STATE_NEW, - /** - * Prepared state. - * @since 8 - */ - PLAYBACK_STATE_PREPARED, - /** - * Running state. - * @since 8 - */ - PLAYBACK_STATE_PLAYING, - /** - * Paused state. - * @since 8 - */ - PLAYBACK_STATE_PAUSED, - /** - * Stopped state. - * @since 8 - */ - PLAYBACK_STATE_STOPPED, - /** - * Released state. - * @since 8 - */ - PLAYBACK_STATE_RELEASED - } - - enum AVMetadataKey { - METADATA_KEY_TITLE = "title", - METADATA_KEY_SUBTITLE = "subtitle", - METADATA_KEY_ARTIST = "artist", - METADATA_KEY_DURATION = "duration", - METADATA_KEY_DATE = "date", - METADATA_KEY_DISPLAY_ICON = "display_icon" - } - - interface AVMetadata { - setNumberValue(key: AVMetadataKey, value: number, callback: AsyncCallback): void; - setNumberValue(key: AVMetadataKey, value: number): Promise; - - setStringValue(key: AVMetadataKey, value: string, callback: AsyncCallback): void; - setStringValue(key: AVMetadataKey, value: string): Promise; - - setPixelMapValue(key: AVMetadataKey, value: image.PixelMap, callback: AsyncCallback): void; - setPixelMapValue(key: AVMetadataKey, value: image.PixelMap): Promise; - } -} - -export default session; \ No newline at end of file diff --git a/interfaces/kits/js/audio_manager/BUILD.gn b/interfaces/kits/js/BUILD.gn similarity index 88% rename from interfaces/kits/js/audio_manager/BUILD.gn rename to interfaces/kits/js/BUILD.gn index 25b0dfcf687904c19a9f1316bf6c7e79a2b50674..0b446d4a8f098728e497ad31192dab9c1c8a2763 100644 --- a/interfaces/kits/js/audio_manager/BUILD.gn +++ b/interfaces/kits/js/BUILD.gn @@ -15,36 +15,22 @@ import("//build/ohos.gni") import("//build/ohos/ace/ace.gni") import("//foundation/multimedia/audio_framework/multimedia_aafwk.gni") -js_declaration("audio_js") { - part_name = "multimedia_audio_framework" - sources = [ "./@ohos.multimedia.audio.d.ts" ] -} - -ohos_copy("audio_declaration") { - sources = [ "./@ohos.multimedia.audio.d.ts" ] - outputs = [ target_out_dir + "/$target_name/" ] - module_source_dir = target_out_dir + "/$target_name" - module_install_name = "" -} - ohos_shared_library("audio") { include_dirs = [ - "${ability_runtime_path}/interfaces/kits/native/ability/native", - "//foundation/arkui/napi/interfaces/kits", - "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_manager/include", - "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_capturer/include", "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_common/include", + "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_renderer/include", + "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_capturer/include", "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_manager/include", "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_stream_manager/include", - "//foundation/multimedia/audio_framework/frameworks/js/napi/audio_renderer/include", "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_manager/include", "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_stream_manager/include", "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_capturer/include", "//foundation/multimedia/audio_framework/interfaces/kits/js/audio_renderer/include", "//foundation/multimedia/audio_framework/interfaces/kits/js/ringtone_manager/include", - "//foundation/multimedia/audio_framework/frameworks/inner_api/audiosoundmanager/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audioringtone/include", + "${ability_runtime_path}/interfaces/kits/native/ability/native", + "//foundation/arkui/napi/interfaces/kits", "//third_party/libuv/include", ] @@ -80,11 +66,11 @@ ohos_shared_library("audio") { "//base/global/resource_management/frameworks/resmgr:global_resmgr", "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog", "//foundation/arkui/napi:ace_napi", - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy:audio_policy_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer:audio_capturer", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audioringtone:audio_ringtone_client", + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ diff --git a/interfaces/kits/js/audio_manager/@ohos.multimedia.audio.d.ts b/interfaces/kits/js/audio_manager/@ohos.multimedia.audio.d.ts deleted file mode 100644 index 900b21ffc99edbd825d75610172c7ad89992d42f..0000000000000000000000000000000000000000 --- a/interfaces/kits/js/audio_manager/@ohos.multimedia.audio.d.ts +++ /dev/null @@ -1,1667 +0,0 @@ -/* -* Copyright (c) 2021-2022 Huawei Device Co., Ltd. -* Licensed under the Apache License, Version 2.0 (the "License"); -* you may not use this file except in compliance with the License. -* You may obtain a copy of the License at -* -* http://www.apache.org/licenses/LICENSE-2.0 -* -* Unless required by applicable law or agreed to in writing, software -* distributed under the License is distributed on an "AS IS" BASIS, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the License for the specific language governing permissions and -* limitations under the License. -*/ - -import {ErrorCallback, AsyncCallback, Callback} from './basic'; -import {VideoPlayer, AudioPlayer} from './@ohos.multimedia.media' -import Context from './@ohos.ability'; -/** - * @name audio - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - * @import import audio from '@ohos.multimedia.audio'; - * @permission - */ -declare namespace audio { - - /** - * Obtains an AudioManager instance. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - function getAudioManager(): AudioManager; - - /** - * Creates a AudioCapturer instance. - * @param options All options used for audio capturer. - * @return AudioCapturer instance. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - function createAudioCapturer(options: AudioCapturerOptions, callback: AsyncCallback): void; - function createAudioCapturer(options: AudioCapturerOptions): Promise; - - /** - * Creates a AudioRenderer instance. - * @param options All options used for audio renderer. - * @return AudioRenderer instance. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - function createAudioRenderer(options: AudioRendererOptions, callback: AsyncCallback): void; - function createAudioRenderer(options: AudioRendererOptions): Promise; - - /** - * Enumerates the rendering states of the current device. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioState { - /** - * Invalid state. - * @since 8 - */ - STATE_INVALID = -1, - /** - * Create New instance state. - * @since 8 - */ - STATE_NEW, - /** - * Prepared state. - * @since 8 - */ - STATE_PREPARED, - /** - * Running state. - * @since 8 - */ - STATE_RUNNING, - /** - * Stopped state. - * @since 8 - */ - STATE_STOPPED, - /** - * Released state. - * @since 8 - */ - STATE_RELEASED, - /** - * Paused state. - * @since 8 - */ - STATE_PAUSED - } - - /** - * Enumerates audio stream types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioVolumeType { - /** - * Audio streams for voice calls - * @since 8 - */ - VOICE_CALL = 0, - /** - * Audio streams for ring tones - * @since 7 - */ - RINGTONE = 2, - /** - * Audio streams for media purpose - * @since 7 - */ - MEDIA = 3, - /** - * Audio stream for voice assistant - * @since 8 - */ - VOICE_ASSISTANT = 9, - } - - /** - * Enumerates audio device flags. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum DeviceFlag { - /** - * Output devices - * @since 7 - */ - OUTPUT_DEVICES_FLAG = 1, - /** - * Input devices - * @since 7 - */ - INPUT_DEVICES_FLAG = 2, - /** - * All devices - * @since 7 - */ - ALL_DEVICES_FLAG = 3, - } - - /** - * Enumerates device roles. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum DeviceRole { - /** - * Input role - * @since 7 - */ - INPUT_DEVICE = 1, - /** - * Output role - * @since 7 - */ - OUTPUT_DEVICE = 2, - } - - /** - * Enumerates device types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum DeviceType { - /** - * Invalid device - * @since 7 - */ - INVALID = 0, - /** - * Speaker - * @since 7 - */ - SPEAKER = 2, - /** - * Wired headset - * @since 7 - */ - WIRED_HEADSET = 3, - /** - * Bluetooth device using the synchronous connection oriented link (SCO) - * @since 7 - */ - BLUETOOTH_SCO = 7, - /** - * Bluetooth device using advanced audio distribution profile (A2DP) - * @since 7 - */ - BLUETOOTH_A2DP = 8, - /** - * Microphone - * @since 7 - */ - MIC = 15, - /** - * USB audio headset. - * @since 7 - */ - USB_HEADSET = 22 - } - - /** - * Enumerates Active device types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum ActiveDeviceType { - /** - * Speaker - * @since 7 - */ - SPEAKER = 2, - /** - * Bluetooth device using the synchronous connection oriented link (SCO) - * @since 7 - */ - BLUETOOTH_SCO = 7, - } - - /** - * Enumerates Audio Ringer modes - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioRingMode { - /** - * Silent mode - * @since 7 - */ - RINGER_MODE_SILENT = 0, - /** - * Vibration mode - * @since 7 - */ - RINGER_MODE_VIBRATE, - /** - * Normal mode - * @since 7 - */ - RINGER_MODE_NORMAL, - } - - /** - * Enumerates the sample format. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioSampleFormat { - SAMPLE_FORMAT_INVALID = -1, - SAMPLE_FORMAT_U8 = 0, - SAMPLE_FORMAT_S16LE = 1, - SAMPLE_FORMAT_S24LE = 2, - SAMPLE_FORMAT_S32LE = 3, - } - - /** - * Enumerates the audio channel. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioChannel { - CHANNEL_1 = 0x1 << 0, - CHANNEL_2 = 0x1 << 1 - } - - /** - * Enumerates the audio sampling rate. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioSamplingRate { - SAMPLE_RATE_8000 = 8000, - SAMPLE_RATE_11025 = 11025, - SAMPLE_RATE_12000 = 12000, - SAMPLE_RATE_16000 = 16000, - SAMPLE_RATE_22050 = 22050, - SAMPLE_RATE_24000 = 24000, - SAMPLE_RATE_32000 = 32000, - SAMPLE_RATE_44100 = 44100, - SAMPLE_RATE_48000 = 48000, - SAMPLE_RATE_64000 = 64000, - SAMPLE_RATE_96000 = 96000 - } - - /** - * Enumerates the audio encoding type. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioEncodingType { - /** - * Invalid type. - * @since 8 - */ - ENCODING_TYPE_INVALID = -1, - /** - * Raw pcm type. - * @since 8 - */ - ENCODING_TYPE_RAW = 0 - } - - /** - * Enumerates the audio content type. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum ContentType { - /** - * Unknown content. - * @since 7 - */ - CONTENT_TYPE_UNKNOWN = 0, - /** - * Speech content. - * @since 7 - */ - CONTENT_TYPE_SPEECH = 1, - /** - * Music content. - * @since 7 - */ - CONTENT_TYPE_MUSIC = 2, - /** - * Movie content. - * @since 7 - */ - CONTENT_TYPE_MOVIE = 3, - /** - * Notification content. - * @since 7 - */ - CONTENT_TYPE_SONIFICATION = 4, - /** - * Ringtone content. - * @since 8 - */ - CONTENT_TYPE_RINGTONE = 5, - } - - /** - * Enumerates the stream usage. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum StreamUsage { - /** - * Unknown usage. - * @since 7 - */ - STREAM_USAGE_UNKNOWN = 0, - /** - * Media usage. - * @since 7 - */ - STREAM_USAGE_MEDIA = 1, - /** - * Voice communication usage. - * @since 7 - */ - STREAM_USAGE_VOICE_COMMUNICATION = 2, - /** - * Notification or ringtone usage. - * @since 7 - */ - STREAM_USAGE_NOTIFICATION_RINGTONE = 6 - } - - /** - * Interface for audio stream info - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioStreamInfo { - /** - * Audio sampling rate - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - samplingRate: AudioSamplingRate; - /** - * Audio channels - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - channels: AudioChannel; - /** - * Audio sample format - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - sampleFormat: AudioSampleFormat; - /** - * Audio encoding type - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - encodingType: AudioEncodingType; - } - - /** - * Interface for audio renderer info - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioRendererInfo { - /** - * Audio content type - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - content: ContentType; - /** - * Audio stream usage - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - usage: StreamUsage; - /** - * Audio renderer flags - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - rendererFlags: number; - } - - /** - * Interface for audio renderer options - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioRendererOptions { - /** - * Audio stream info - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - streamInfo: AudioStreamInfo; - /** - * Audio renderer info - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - rendererInfo: AudioRendererInfo; - } - - /** - * Enum for audio renderer rate - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioRendererRate { - /** - * Normal rate - * @since 8 - */ - RENDER_RATE_NORMAL = 0, - /** - * Double rate - * @since 8 - */ - RENDER_RATE_DOUBLE = 1, - /** - * Half rate - * @since 8 - */ - RENDER_RATE_HALF = 2 - } - - /** - * Enumerates audio interruption event types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum InterruptType { - /** - * An audio interruption event starts. - * @since 7 - */ - INTERRUPT_TYPE_BEGIN = 1, - - /** - * An audio interruption event ends. - * @since 7 - */ - INTERRUPT_TYPE_END = 2 - } - - /** - * Enumerates the types of hints for audio interruption. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum InterruptHint { - /** - * Audio no interrupt. - * @since 8 - */ - INTERRUPT_HINT_NONE = 0, - /** - * Audio resumed. - * @since 7 - */ - INTERRUPT_HINT_RESUME = 1, - - /** - * Audio paused. - * @since 7 - */ - INTERRUPT_HINT_PAUSE = 2, - - /** - * Audio stopped. - * @since 7 - */ - INTERRUPT_HINT_STOP = 3, - - /** - * Audio ducking. (In ducking, the audio volume is reduced, but not silenced.) - * @since 7 - */ - INTERRUPT_HINT_DUCK = 4, - - /** - * Audio unducking. - * @since 8 - */ - INTERRUPT_HINT_UNDUCK = 5, - } - - /** - * Interrupt force type. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum InterruptForceType { - /** - * Force type, system change audio state. - * @since 8 - */ - INTERRUPT_FORCE = 0, - /** - * Share type, application change audio state. - * @since 8 - */ - INTERRUPT_SHARE - } - - /** - * Interrupt events - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface InterruptEvent { - /** - * Interrupt event type, begin or end - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - eventType: InterruptType; - - /** - * Interrupt force type, force or share - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - forceType: InterruptForceType; - - /** - * Interrupt hint type. In force type, the audio state already changed, - * but in share mode, only provide a hint for application to decide. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - hintType: InterruptHint; - } - - /** - * Enumerates interrupt action types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - enum InterruptActionType { - - /** - * Focus gain event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - TYPE_ACTIVATED = 0, - - /** - * Audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - TYPE_INTERRUPT = 1 - } - - /** - * Enumerates device change types. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - enum DeviceChangeType { - /** - * Device connection. - * @since 7 - */ - CONNECT = 0, - - /** - * Device disconnection. - * @since 7 - */ - DISCONNECT = 1, - } - - /** - * Enumerates audio scenes. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum AudioScene { - /** - * Default audio scene - * @since 8 - */ - AUDIO_SCENE_DEFAULT = 0, - /** - * Ringing audio scene - * Only available for system api. - * @since 8 - */ - AUDIO_SCENE_RINGING, - /** - * Phone call audio scene - * Only available for system api. - * @since 8 - */ - AUDIO_SCENE_PHONE_CALL, - /** - * Voice chat audio scene - * @since 8 - */ - AUDIO_SCENE_VOICE_CHAT - } - - /** - * Manages audio volume and audio device information. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioManager { - /** - * Sets volume for a stream. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setVolume(audioType: AudioVolumeType, volume: number, callback: AsyncCallback): void; - /** - * Sets volume for a stream. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setVolume(audioType: AudioVolumeType, volume: number): Promise; - /** - * Obtains volume of a stream. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getVolume(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Obtains the volume of a stream. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getVolume(audioType: AudioVolumeType): Promise; - /** - * Obtains the minimum volume allowed for a stream. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getMinVolume(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Obtains the minimum volume allowed for a stream. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getMinVolume(audioType: AudioVolumeType): Promise; - /** - * Obtains the maximum volume allowed for a stream. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getMaxVolume(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Obtains the maximum volume allowed for a stream. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getMaxVolume(audioType: AudioVolumeType): Promise; - /** - * Obtains the audio devices of a specified flag. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getDevices(deviceFlag: DeviceFlag, callback: AsyncCallback): void; - /** - * Obtains the audio devices with a specified flag. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getDevices(deviceFlag: DeviceFlag): Promise; - /** - * Sets the stream to mute. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - mute(audioType: AudioVolumeType, mute: boolean, callback: AsyncCallback): void; - /** - * Sets the stream to mute. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - mute(audioType: AudioVolumeType, mute: boolean): Promise; - /** - * Checks whether the stream is muted. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isMute(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Checks whether the stream is muted. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isMute(audioType: AudioVolumeType): Promise; - /** - * Checks whether the stream is active. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isActive(audioType: AudioVolumeType, callback: AsyncCallback): void; - /** - * Checks whether the stream is active. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isActive(audioType: AudioVolumeType): Promise; - /** - * Mute/Unmutes the microphone. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setMicrophoneMute(mute: boolean, callback: AsyncCallback): void; - /** - * Mute/Unmutes the microphone. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setMicrophoneMute(mute: boolean): Promise; - /** - * Checks whether the microphone is muted. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isMicrophoneMute(callback: AsyncCallback): void; - /** - * Checks whether the microphone is muted. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isMicrophoneMute(): Promise; - /** - * Sets the ringer mode. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setRingerMode(mode: AudioRingMode, callback: AsyncCallback): void; - /** - * Sets the ringer mode. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setRingerMode(mode: AudioRingMode): Promise; - /** - * Gets the ringer mode. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getRingerMode(callback: AsyncCallback): void; - /** - * Gets the ringer mode. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getRingerMode(): Promise; - /** - * Sets the audio parameter. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setAudioParameter(key: string, value: string, callback: AsyncCallback): void; - /** - * Sets the audio parameter. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setAudioParameter(key: string, value: string): Promise; - /** - * Gets the audio parameter. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioParameter(key: string, callback: AsyncCallback): void; - /** - * Gets the audio parameter. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioParameter(key: string): Promise; - /** - * Activates the device. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setDeviceActive(deviceType: ActiveDeviceType, active: boolean, callback: AsyncCallback): void; - /** - * Activates the device. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - setDeviceActive(deviceType: ActiveDeviceType, active: boolean): Promise; - /** - * Checks whether the device is active. This method uses an asynchronous callback to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isDeviceActive(deviceType: ActiveDeviceType, callback: AsyncCallback): void; - /** - * Checks whether the device is active. This method uses a promise to return the execution result. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - isDeviceActive(deviceType: ActiveDeviceType): Promise; - /** - * Subscribes volume change event callback, only for system - * @return VolumeEvent callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @systemapi - */ - on(type: 'volumeChange', callback: Callback): void; - /** - * Monitors ringer mode change - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @systemapi - */ - on(type: 'ringerModeChange', callback: Callback): void; - /** - * Sets the audio scene mode to change audio strategy. - * This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - setAudioScene(scene: AudioScene, callback: AsyncCallback): void; - /** - * Sets the audio scene mode to change audio strategy. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - setAudioScene(scene: AudioScene): Promise; - /** - * Obtains the system audio scene mode. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioScene(callback: AsyncCallback): void; - /** - * Obtains the system audio scene mode. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioScene(): Promise; - /** - * Monitors device changes - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - on(type: 'deviceChange', callback: Callback): void; - - /** - * UnSubscribes to device change events. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Device - */ - off(type: 'deviceChange'): void; - - /** - * Listens for audio interruption events. When the audio of an application is interrupted by another application, - * the callback is invoked to notify the former application. - * @param type Type of the event to listen for. Only the interrupt event is supported. - * @param interrupt Parameters of the audio interruption event type. - * @param callback Callback invoked for the audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - on(type: 'interrupt', interrupt: AudioInterrupt, callback: Callback): void; - - /** - * Cancels the listening of audio interruption events. - * @param type Type of the event to listen for. Only the interrupt event is supported. - * @param interrupt Input parameters of the audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - off(type: 'interrupt', interrupt: AudioInterrupt): void; - } - - /** - * Describes an audio device. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioDeviceDescriptor { - /** - * Audio device role - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - readonly deviceRole: DeviceRole; - /** - * Audio device type - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - readonly deviceType: DeviceType; - } - - /** - * A queue of AudioDeviceDescriptor, which is read-only. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - type AudioDeviceDescriptors = Array>; - - /** - * Audio volume event - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @systemapi - */ - interface VolumeEvent { - /** - * volumeType of current stream - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - volumeType: AudioVolumeType; - /** - * volume level - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - volume: number; - /** - * updateUi show volume change in Ui - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - updateUi: boolean; - } - - /** - * Describes the callback invoked for audio interruption or focus gain events.When the audio of an application - * is interrupted by another application, the callback is invoked to notify the former application. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - interface InterruptAction { - - /** - * Event type. - * The value TYPE_ACTIVATED means the focus gain event, and TYPE_INTERRUPT means the audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - actionType: InterruptActionType; - - /** - * Type of the audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - type?: InterruptType; - - /** - * Hint for the audio interruption event. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - hint?: InterruptHint; - - /** - * Whether the focus is gained or released. The value true means that the focus is gained or released, - * and false means that the focus fails to be gained or released. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - activated?: boolean; - } - - /** - * Describes input parameters of audio listening events. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - interface AudioInterrupt { - - /** - * Audio stream usage type. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - streamUsage: StreamUsage; - - /** - * Type of the media interrupted. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - contentType: ContentType; - - /** - * Whether audio playback can be paused when it is interrupted. - * The value true means that audio playback can be paused when it is interrupted, and false means the opposite. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio.Renderer - */ - pauseWhenDucked: boolean; - } - - /** - * Describes the device change type and device information. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - interface DeviceChangeAction { - /** - * Device change type. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - type: DeviceChangeType; - - /** - * Device information. - * @since 7 - * @syscap SystemCapability.Multimedia.Audio - */ - deviceDescriptors: AudioDeviceDescriptors; - } - - /** - * Provides functions for applications for audio playback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioRenderer { - /** - * Gets audio state. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - readonly state: AudioState; - /** - * Gets audio renderer info. - * @return AudioRendererInfo value - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getRendererInfo(callback: AsyncCallback): void; - getRendererInfo(): Promise; - /** - * Gets audio stream info. - * @return AudioStreamInfo value - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getStreamInfo(callback: AsyncCallback): void; - getStreamInfo(): Promise; - /** - * Starts audio rendering. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - start(callback: AsyncCallback): void; - /** - * Starts audio rendering. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - start(): Promise; - /** - * Render audio data. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - write(buffer: ArrayBuffer, callback: AsyncCallback): void; - /** - * Render audio data. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - write(buffer: ArrayBuffer): Promise; - /** - * Obtains the current timestamp. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioTime(callback: AsyncCallback): void; - /** - * Obtains the current timestamp. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioTime(): Promise; - /** - * Drain renderer buffer. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - drain(callback: AsyncCallback): void; - /** - * Drain renderer buffer. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - drain(): Promise; - /** - * Pauses audio rendering. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - pause(callback: AsyncCallback): void; - /** - * Pauses audio rendering. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - pause(): Promise; - /** - * Stops audio rendering. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - stop(callback: AsyncCallback): void; - /** - * Stops audio rendering. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - stop(): Promise; - /** - * Releases resources. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - release(callback: AsyncCallback): void; - /** - * Releases resources. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - release(): Promise; - /** - * Obtains a reasonable minimum buffer size for renderer, however, the renderer can - * accept other read sizes as well. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getBufferSize(callback: AsyncCallback): void; - /** - * Obtains a reasonable minimum buffer size for renderer, however, the renderer can - * accept other read sizes as well. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getBufferSize(): Promise; - /** - * Set the render rate. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - setRenderRate(rate: AudioRendererRate, callback: AsyncCallback): void; - /** - * Set the render rate. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - setRenderRate(rate: AudioRendererRate): Promise; - /** - * Obtains the current render rate. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getRenderRate(callback: AsyncCallback): void; - /** - * Obtains the current render rate. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getRenderRate(): Promise; - /** - * Subscribes interrupt event callback. - * @param type Event type. - * @return InterruptEvent callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - on(type: 'interrupt', callback: Callback): void; - /** - * Subscribes mark reach event callback. - * @param type Event type. - * @param frame Mark reach frame count. - * @return Mark reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "markReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes mark reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - off(type: "markReach"): void; - /** - * Subscribes period reach event callback. - * @param type Event type. - * @param frame Period reach frame count. - * @return Period reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "periodReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes period reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - off(type: "periodReach"): void; - /** - * Subscribes audio state change event callback. - * @param type Event type. - * @param callback Callback used to listen for the audio state change event. - * @return AudioState - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "stateChange", callback: Callback): void; - } - - /** - * Enum for source type. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - enum SourceType { - /** - * Invalid source type. - * @since 8 - */ - SOURCE_TYPE_INVALID = -1, - /** - * Mic source type. - * @since 8 - */ - SOURCE_TYPE_MIC = 0, - /** - * Voice communication source type. - * @since 8 - */ - SOURCE_TYPE_VOICE_COMMUNICATION = 7 - } - - /** - * Interface for audio capturer info. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioCapturerInfo { - /** - * Audio source type - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - source: SourceType; - /** - * Audio capturer flags - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - capturerFlags: number; - } - - /** - * Interface for audio capturer options. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioCapturerOptions { - /** - * Audio stream info. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - streamInfo: AudioStreamInfo; - /** - * Audio capturer info. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - capturerInfo: AudioCapturerInfo; - } - - /** - * Provides functions for applications to manage audio capturing. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - interface AudioCapturer { - /** - * Gets capture state. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - readonly state: AudioState; - /** - * Gets audio capturer info. - * @return AudioCapturerInfo value - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getCapturerInfo(callback: AsyncCallback): void; - getCapturerInfo(): Promise; - - /** - * Gets audio stream info. - * @return AudioStreamInfo value - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getStreamInfo(callback: AsyncCallback): void; - getStreamInfo(): Promise; - - /** - * Starts audio capturing. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - start(callback: AsyncCallback): void; - /** - * Starts audio capturing. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - start(): Promise; - - /** - * Capture audio data. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - read(size: number, isBlockingRead: boolean, callback: AsyncCallback): void; - /** - * Capture audio data. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - read(size: number, isBlockingRead: boolean): Promise; - - /** - * Obtains the current timestamp. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioTime(callback: AsyncCallback): void; - /** - * Obtains the current timestamp. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getAudioTime(): Promise; - - /** - * Stops audio capturing. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - stop(callback: AsyncCallback): void; - /** - * Stops audio capturing. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - stop(): Promise; - - /** - * Releases a capture resources. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - release(callback: AsyncCallback): void; - /** - * Releases a capture resources. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - release(): Promise; - - /** - * Obtains a reasonable minimum buffer size for capturer, however, the capturer can - * accept other read sizes as well. This method uses an asynchronous callback to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getBufferSize(callback: AsyncCallback): void; - /** - * Obtains a reasonable minimum buffer size for capturer, however, the capturer can - * accept other read sizes as well. This method uses a promise to return the execution result. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - */ - getBufferSize(): Promise; - - /** - * Subscribes mark reach event callback. - * @param type Event type. - * @param frame Mark reach frame count. - * @return Mark reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "markReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes mark reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - off(type: "markReach"): void; - - /** - * Subscribes period reach event callback. - * @param type Event type. - * @param frame Period reach frame count. - * @return Period reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "periodReach", frame: number, callback: (position: number) => {}): void; - /** - * Unsubscribes period reach event callback. - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - off(type: "periodReach"): void; - /** - * Subscribes audio state change event callback. - * @param type Event type. - * @param callback Callback used to listen for the audio state change event. - * @return AudioState - * @since 8 - * @syscap SystemCapability.Multimedia.Audio - * @initial - */ - on(type: "stateChange", callback: Callback): void; - - } - - /** - * Enum for ringtone type. - * @since 8 - */ - enum RingtoneType { - /** - * Default type. - * @since 8 - */ - RINGTONE_TYPE_DEFAULT = 0, - /** - * Multi-sim type. - * @since 8 - */ - RINGTONE_TYPE_MULTISIM - } - - /** - * Interface for ringtone options. - * @since 8 - */ - interface RingtoneOptions { - /** - * Ringtone volume. - * @since 8 - */ - volume: number; - /** - * Loop value. - * @since 8 - */ - loop: boolean; - } - - interface RingtonePlayer { - /** - * Gets render state of ringtone. - * @syscap SystemCapability.Multimedia.Audio - */ - readonly state: AudioState; - - /** - * Gets the title of ringtone. - * @since 1.0 - */ - getTitle(callback: AsyncCallback): void; - getTitle(): Promise; - - /** - * Gets audio renderer info. - * @return AudioRendererInfo value - * @since 1.0 - */ - getAudioRendererInfo(callback: AsyncCallback): void; - getAudioRendererInfo(): Promise; - - /** - * Sets ringtone parameters. - * @param option Set RingtoneOption for ringtone like volume & loop - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - configure(option: RingtoneOptions, callback: AsyncCallback): void; - configure(option: RingtoneOptions): Promise; - /** - * Starts playing ringtone. - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - start(callback: AsyncCallback): void; - start(): Promise; - /** - * Stops playing ringtone. - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - stop(callback: AsyncCallback): void; - stop(): Promise; - /** - * Release ringtone player resource. - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - release(callback: AsyncCallback): void; - release(): Promise; - } - function getSystemSoundManager(): SystemSoundManager; - interface SystemSoundManager { - /** - * Sets the ringtone uri. - * @param context Indicates the Context object on OHOS - * @param uri Indicates which uri to be set for the tone type - * @param type Indicates the type of the tone - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType, callback: AsyncCallback): void; - setSystemRingtoneUri(context: Context, uri: string, type: RingtoneType): Promise; - /** - * Sets the ringtone uri. - * @param context Indicates the Context object on OHOS - * @param type Indicates the type of the tone - * @param callback Callback object to be passed along with request - * @return Returns uri of the ringtone - * @since 1.0 - * @version 1.0 - */ - getSystemRingtoneUri(context: Context, type: RingtoneType, callback: AsyncCallback): void; - getSystemRingtoneUri(context: Context, type: RingtoneType): Promise; - /** - * Gets the ringtone player. - * @param context Indicates the Context object on OHOS - * @param type Indicates the type of the tone - * @param callback Callback object to be passed along with request - * @return Returns ringtone player object - * @since 1.0 - * @version 1.0 - */ - getSystemRingtonePlayer(context: Context, type: RingtoneType, callback: AsyncCallback): void; - getSystemRingtonePlayer(context: Context, type: RingtoneType): Promise; - /** - * Sets the notification uri. - * @param context Indicates the Context object on OHOS - * @param uri Indicates the uri of the notification - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - setSystemNotificationUri(context: Context, uri: string, callback: AsyncCallback): void; - setSystemNotificationUri(context: Context, uri: string): Promise; - /** - * Gets the notification uri. - * @param context Indicates the Context object on OHOS - * @param callback Callback object to be passed along with request - * @return Returns the uri of the notification - * @since 1.0 - * @version 1.0 - */ - getSystemNotificationUri(context: Context, callback: AsyncCallback): void; - getSystemNotificationUri(context: Context): Promise; - /** - * Sets the alarm uri. - * @param context Indicates the Context object on OHOS - * @param uri Indicates the uri of the alarm - * @param callback Callback object to be passed along with request - * @since 1.0 - * @version 1.0 - */ - setSystemAlarmUri(context: Context, uri: string, callback: AsyncCallback): void; - setSystemAlarmUri(context: Context, uri: string): Promise; - /** - * Gets the alarm uri. - * @param context Indicates the Context object on OHOS - * @param callback Callback object to be passed along with request - * @return Returns the uri of the alarm - * @since 1.0 - * @version 1.0 - */ - getSystemAlarmUri(context: Context, callback: AsyncCallback): void; - getSystemAlarmUri(context: Context): Promise; - } -} - -export default audio; diff --git a/services/BUILD.gn b/services/audio_policy/BUILD.gn similarity index 50% rename from services/BUILD.gn rename to services/audio_policy/BUILD.gn index 25e93e4395524ca579d997c6b93d37a5590b3ab8..6917cfacdaa2fc03bd9da9c756e5329bdd80da2b 100644 --- a/services/BUILD.gn +++ b/services/audio_policy/BUILD.gn @@ -9,92 +9,21 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//build/ohos.gni") import("//drivers/hdf_core/adapter/uhdf2/uhdf.gni") -AUDIO_POLICY_SERVER_DIR = - "//foundation/multimedia/audio_framework/services/src/audio_policy/server" - -ohos_prebuilt_etc("pulseaudio.rc") { - source = "etc/pulseaudio.cfg" - relative_install_dir = "init" - part_name = "multimedia_audio_framework" - subsystem_name = "multimedia" -} - -config("audio_service_config") { - visibility = [ ":*" ] - - include_dirs = [ - "include", - "include/audio_service/server", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", - "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/common", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/primary", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/remote", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/file", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/bluetooth", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/common", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/primary", - "//drivers/peripheral/audio/interfaces/include", - "include/audio_service/common", - ] - - if (target_cpu == "arm") { - cflags = [ "-DBINDER_IPC_32BIT" ] - } -} - -ohos_shared_library("audio_service") { - install_enable = true - - sources = [ - "src/audio_service/server/audio_manager_listener_proxy.cpp", - "src/audio_service/server/audio_manager_stub.cpp", - "src/audio_service/server/audio_server.cpp", - ] - - configs = [ ":audio_service_config" ] - - if ("${product_name}" == "m40") { - cflags = [ "-DPRODUCT_M40" ] - } - - deps = [ - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:audio_renderer_sink", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:remote_audio_renderer_sink", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:renderer_sink_adapter", - "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source:audio_capturer_source", - "//foundation/multimedia/audio_framework/frameworks/native/pulseaudio/src/daemon:pulseaudio", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", - ] - - external_deps = [ - "access_token:libaccesstoken_sdk", - "c_utils:utils", - "hiviewdfx_hilog_native:libhilog", - "ipc:ipc_core", - "safwk:system_ability_fwk", - "samgr:samgr_proxy", - ] - - subsystem_name = "multimedia" - part_name = "multimedia_audio_framework" -} - -group("audio_policy_service_packages") { +group("audio_policy_packages") { deps = [ ":audio_dump", ":audio_interrupt_policy_config", - ":audio_policy.rc", + ":audio_policy_init", ":audio_policy_service", ] } -ohos_prebuilt_etc("audio_policy.rc") { +ohos_prebuilt_etc("audio_policy_init") { source = "etc/audio_policy.cfg" relative_install_dir = "init" part_name = "multimedia_audio_framework" @@ -103,29 +32,29 @@ ohos_prebuilt_etc("audio_policy.rc") { config("audio_policy_public_config") { include_dirs = [ - "//drivers/peripheral/audio/interfaces/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", - "//foundation/systemabilitymgr/safwk/services/safwk/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/common", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", + "//foundation/multimedia/audio_framework/services/audio_service/common/include", + "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer/include", "//foundation/multimedia/audio_framework/frameworks/native/audioadapter/include", "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include", "//foundation/multimedia/audio_framework/frameworks/native/bluetoothclient", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/common", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/config", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/interface", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/listener", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service/manager", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server/service", - "//foundation/multimedia/audio_framework/services/include/audio_policy/common", - "//foundation/multimedia/audio_framework/services/include/audio_policy/server", - "//foundation/multimedia/audio_framework/services/include/audio_policy/client", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/common", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/config", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/interface", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/listener", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service/manager", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include/service", + "//foundation/multimedia/audio_framework/services/audio_policy/common/include", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include", + "//foundation/multimedia/audio_framework/services/audio_policy/client/include", "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include", + "//foundation/systemabilitymgr/safwk/services/safwk/include", "//foundation/distributeddatamgr/distributeddatamgr/interfaces/innerkits/distributeddata/include", "//base/hiviewdfx/hilog/interfaces/native/inner_api/include", + "//drivers/peripheral/audio/interfaces/include", "//third_party/libxml2/include", "//third_party/pulseaudio/src", "//third_party/pulseaudio/confgure/src", @@ -141,7 +70,6 @@ config("audio_policy_public_config") { "//foundation/communication/bluetooth/interfaces/inner_api/include/c_header", "//foundation/communication/bluetooth/services/bluetooth/ipc/include", "//foundation/communication/bluetooth/services/bluetooth/common/", - "//foundation/multimedia/audio_framework/frameworks/native/audiorenderer/include", ] cflags = [ @@ -158,7 +86,7 @@ config("audio_policy_public_config") { ohos_shared_library("audio_dump") { install_enable = true - sources = [ "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_service_dump.cpp" ] + sources = [ "server/src/service/dump/audio_service_dump.cpp" ] public_configs = [ ":audio_policy_public_config" ] @@ -179,25 +107,25 @@ ohos_shared_library("audio_dump") { ohos_shared_library("audio_policy_service") { install_enable = true sources = [ - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_device_descriptor.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_interrupt_group_info.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/client/audio_volume_group_info.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_capturer_state_change_listener_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_client_tracker_callback_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_group_handle.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_policy_manager_listener_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_policy_manager_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_policy_server.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_renderer_state_change_listener_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_ringermode_update_listener_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_stream_collector.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_stream_event_dispatcher.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/audio_volume_key_event_callback_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/service/audio_policy_service.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/service/config/audio_focus_parser.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/service/config/xml_parser.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/service/listener/device_status_listener.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_policy/server/service/manager/audio_adapter_manager.cpp", + "client/src/audio_device_descriptor.cpp", + "client/src/audio_interrupt_group_info.cpp", + "client/src/audio_volume_group_info.cpp", + "server/src/audio_capturer_state_change_listener_proxy.cpp", + "server/src/audio_client_tracker_callback_proxy.cpp", + "server/src/audio_group_handle.cpp", + "server/src/audio_policy_manager_listener_proxy.cpp", + "server/src/audio_policy_manager_stub.cpp", + "server/src/audio_policy_server.cpp", + "server/src/audio_renderer_state_change_listener_proxy.cpp", + "server/src/audio_ringermode_update_listener_proxy.cpp", + "server/src/audio_stream_collector.cpp", + "server/src/audio_stream_event_dispatcher.cpp", + "server/src/audio_volume_key_event_callback_proxy.cpp", + "server/src/service/audio_policy_service.cpp", + "server/src/service/config/audio_focus_parser.cpp", + "server/src/service/config/xml_parser.cpp", + "server/src/service/listener/device_status_listener.cpp", + "server/src/service/manager/audio_adapter_manager.cpp", ] public_configs = [ ":audio_policy_public_config" ] @@ -213,8 +141,8 @@ ohos_shared_library("audio_policy_service") { "//foundation/distributeddatamgr/distributeddatamgr/services/distributeddataservice/adapter:distributeddata_adapter", "//foundation/multimedia/audio_framework/frameworks/native/audioadapter:pulse_audio_service_adapter", "//foundation/multimedia/audio_framework/frameworks/native/bluetoothclient:audio_bluetooth_client", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", - "//foundation/multimedia/audio_framework/services:audio_dump", + "//foundation/multimedia/audio_framework/services/audio_policy:audio_dump", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", "//third_party/libxml2:xml2", ] @@ -234,10 +162,88 @@ ohos_shared_library("audio_policy_service") { } ohos_prebuilt_etc("audio_interrupt_policy_config") { - source = "$AUDIO_POLICY_SERVER_DIR/etc/audio_interrupt_policy_config.xml" + source = "server/config/audio_interrupt_policy_config.xml" subsystem_name = "multimedia" relative_install_dir = "audio" install_images = [ chipset_base_dir ] part_name = "multimedia_audio_framework" } + +config("audio_policy_client_config") { + include_dirs = [ + "//foundation/multimedia/audio_framework/services/audio_service/client/include", + "//foundation/systemabilitymgr/safwk/services/safwk/include", + "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy/include", + "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", + "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", + "//foundation/multimedia/audio_framework/services/audio_policy/common/include", + "//foundation/multimedia/audio_framework/services/audio_policy/client/include", + "//foundation/multimedia/audio_framework/services/audio_policy/server/include", + "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", + "//foundation/systemabilitymgr/samgr/interfaces/innerkits/samgr_proxy/include", + "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", + "//utils/system/safwk/native/include", + "//commonlibrary/c_utils/base/include", + "//third_party/bounds_checking_function/include", + ] + + cflags = [ + "-Wall", + "-Werror", + ] + + if (target_cpu == "arm") { + cflags += [ "-DBINDER_IPC_32BIT" ] + } +} + +ohos_shared_library("audio_policy_client") { + install_enable = true + sources = [ + "client/src/audio_capturer_state_change_listener_stub.cpp", + "client/src/audio_client_tracker_callback_stub.cpp", + "client/src/audio_device_descriptor.cpp", + "client/src/audio_policy_manager.cpp", + "client/src/audio_policy_manager_listener_stub.cpp", + "client/src/audio_policy_proxy.cpp", + "client/src/audio_renderer_state_change_listener_stub.cpp", + "client/src/audio_ringermode_update_listener_stub.cpp", + "client/src/audio_volume_group_info.cpp", + "client/src/audio_volume_key_event_callback_stub.cpp", + ] + + public_configs = [ ":audio_policy_client_config" ] + + external_deps = [ + "c_utils:utils", + "hiviewdfx_hilog_native:libhilog", + "ipc:ipc_core", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] + subsystem_name = "multimedia" + part_name = "multimedia_audio_framework" +} + +ohos_executable("audio_policy_test") { + install_enable = false + + sources = [ "//foundation/multimedia/audio_framework/services/test/audio_policy_test.cpp" ] + + configs = [ ":audio_policy_client_config" ] + + deps = [ + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", + "//third_party/bounds_checking_function:libsec_static", + ] + + external_deps = [ + "c_utils:utils", + "hiviewdfx_hilog_native:libhilog", + ] + + part_name = "multimedia_audio_framework" + subsystem_name = "multimedia" +} diff --git a/services/include/audio_policy/client/audio_capturer_state_change_listener_stub.h b/services/audio_policy/client/include/audio_capturer_state_change_listener_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_capturer_state_change_listener_stub.h rename to services/audio_policy/client/include/audio_capturer_state_change_listener_stub.h diff --git a/services/include/audio_policy/client/audio_client_tracker_callback_stub.h b/services/audio_policy/client/include/audio_client_tracker_callback_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_client_tracker_callback_stub.h rename to services/audio_policy/client/include/audio_client_tracker_callback_stub.h diff --git a/services/include/audio_policy/client/audio_policy_base.h b/services/audio_policy/client/include/audio_policy_base.h similarity index 100% rename from services/include/audio_policy/client/audio_policy_base.h rename to services/audio_policy/client/include/audio_policy_base.h diff --git a/services/include/audio_policy/client/audio_policy_manager_listener_stub.h b/services/audio_policy/client/include/audio_policy_manager_listener_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_policy_manager_listener_stub.h rename to services/audio_policy/client/include/audio_policy_manager_listener_stub.h diff --git a/services/include/audio_policy/client/audio_policy_manager_stub.h b/services/audio_policy/client/include/audio_policy_manager_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_policy_manager_stub.h rename to services/audio_policy/client/include/audio_policy_manager_stub.h diff --git a/services/include/audio_policy/client/audio_policy_proxy.h b/services/audio_policy/client/include/audio_policy_proxy.h similarity index 100% rename from services/include/audio_policy/client/audio_policy_proxy.h rename to services/audio_policy/client/include/audio_policy_proxy.h diff --git a/services/include/audio_policy/client/audio_renderer_state_change_listener_stub.h b/services/audio_policy/client/include/audio_renderer_state_change_listener_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_renderer_state_change_listener_stub.h rename to services/audio_policy/client/include/audio_renderer_state_change_listener_stub.h diff --git a/services/include/audio_policy/client/audio_ringermode_update_listener_stub.h b/services/audio_policy/client/include/audio_ringermode_update_listener_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_ringermode_update_listener_stub.h rename to services/audio_policy/client/include/audio_ringermode_update_listener_stub.h diff --git a/services/include/audio_policy/client/audio_volume_key_event_callback_stub.h b/services/audio_policy/client/include/audio_volume_key_event_callback_stub.h similarity index 100% rename from services/include/audio_policy/client/audio_volume_key_event_callback_stub.h rename to services/audio_policy/client/include/audio_volume_key_event_callback_stub.h diff --git a/services/src/audio_policy/client/audio_capturer_state_change_listener_stub.cpp b/services/audio_policy/client/src/audio_capturer_state_change_listener_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_capturer_state_change_listener_stub.cpp rename to services/audio_policy/client/src/audio_capturer_state_change_listener_stub.cpp diff --git a/services/src/audio_policy/client/audio_client_tracker_callback_stub.cpp b/services/audio_policy/client/src/audio_client_tracker_callback_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_client_tracker_callback_stub.cpp rename to services/audio_policy/client/src/audio_client_tracker_callback_stub.cpp diff --git a/services/src/audio_policy/client/audio_device_descriptor.cpp b/services/audio_policy/client/src/audio_device_descriptor.cpp similarity index 100% rename from services/src/audio_policy/client/audio_device_descriptor.cpp rename to services/audio_policy/client/src/audio_device_descriptor.cpp diff --git a/services/src/audio_policy/client/audio_interrupt_group_info.cpp b/services/audio_policy/client/src/audio_interrupt_group_info.cpp similarity index 100% rename from services/src/audio_policy/client/audio_interrupt_group_info.cpp rename to services/audio_policy/client/src/audio_interrupt_group_info.cpp diff --git a/services/src/audio_policy/client/audio_policy_manager.cpp b/services/audio_policy/client/src/audio_policy_manager.cpp similarity index 100% rename from services/src/audio_policy/client/audio_policy_manager.cpp rename to services/audio_policy/client/src/audio_policy_manager.cpp diff --git a/services/src/audio_policy/client/audio_policy_manager_listener_stub.cpp b/services/audio_policy/client/src/audio_policy_manager_listener_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_policy_manager_listener_stub.cpp rename to services/audio_policy/client/src/audio_policy_manager_listener_stub.cpp diff --git a/services/src/audio_policy/client/audio_policy_proxy.cpp b/services/audio_policy/client/src/audio_policy_proxy.cpp similarity index 100% rename from services/src/audio_policy/client/audio_policy_proxy.cpp rename to services/audio_policy/client/src/audio_policy_proxy.cpp diff --git a/services/src/audio_policy/client/audio_renderer_state_change_listener_stub.cpp b/services/audio_policy/client/src/audio_renderer_state_change_listener_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_renderer_state_change_listener_stub.cpp rename to services/audio_policy/client/src/audio_renderer_state_change_listener_stub.cpp diff --git a/services/src/audio_policy/client/audio_ringermode_update_listener_stub.cpp b/services/audio_policy/client/src/audio_ringermode_update_listener_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_ringermode_update_listener_stub.cpp rename to services/audio_policy/client/src/audio_ringermode_update_listener_stub.cpp diff --git a/services/src/audio_policy/client/audio_volume_group_info.cpp b/services/audio_policy/client/src/audio_volume_group_info.cpp similarity index 100% rename from services/src/audio_policy/client/audio_volume_group_info.cpp rename to services/audio_policy/client/src/audio_volume_group_info.cpp diff --git a/services/src/audio_policy/client/audio_volume_key_event_callback_stub.cpp b/services/audio_policy/client/src/audio_volume_key_event_callback_stub.cpp similarity index 100% rename from services/src/audio_policy/client/audio_volume_key_event_callback_stub.cpp rename to services/audio_policy/client/src/audio_volume_key_event_callback_stub.cpp diff --git a/services/include/audio_policy/common/audio_policy_types.h b/services/audio_policy/common/include/audio_policy_types.h similarity index 100% rename from services/include/audio_policy/common/audio_policy_types.h rename to services/audio_policy/common/include/audio_policy_types.h diff --git a/services/include/audio_policy/common/i_audio_volume_key_event_callback.h b/services/audio_policy/common/include/i_audio_volume_key_event_callback.h similarity index 100% rename from services/include/audio_policy/common/i_audio_volume_key_event_callback.h rename to services/audio_policy/common/include/i_audio_volume_key_event_callback.h diff --git a/services/include/audio_policy/common/i_standard_audio_policy_manager_listener.h b/services/audio_policy/common/include/i_standard_audio_policy_manager_listener.h similarity index 100% rename from services/include/audio_policy/common/i_standard_audio_policy_manager_listener.h rename to services/audio_policy/common/include/i_standard_audio_policy_manager_listener.h diff --git a/services/include/audio_policy/common/i_standard_capturer_state_change_listener.h b/services/audio_policy/common/include/i_standard_capturer_state_change_listener.h similarity index 100% rename from services/include/audio_policy/common/i_standard_capturer_state_change_listener.h rename to services/audio_policy/common/include/i_standard_capturer_state_change_listener.h diff --git a/services/include/audio_policy/common/i_standard_client_tracker.h b/services/audio_policy/common/include/i_standard_client_tracker.h similarity index 100% rename from services/include/audio_policy/common/i_standard_client_tracker.h rename to services/audio_policy/common/include/i_standard_client_tracker.h diff --git a/services/include/audio_policy/common/i_standard_renderer_state_change_listener.h b/services/audio_policy/common/include/i_standard_renderer_state_change_listener.h similarity index 100% rename from services/include/audio_policy/common/i_standard_renderer_state_change_listener.h rename to services/audio_policy/common/include/i_standard_renderer_state_change_listener.h diff --git a/services/include/audio_policy/common/i_standard_ringermode_update_listener.h b/services/audio_policy/common/include/i_standard_ringermode_update_listener.h similarity index 100% rename from services/include/audio_policy/common/i_standard_ringermode_update_listener.h rename to services/audio_policy/common/include/i_standard_ringermode_update_listener.h diff --git a/services/etc/audio_policy.cfg b/services/audio_policy/etc/audio_policy.cfg similarity index 100% rename from services/etc/audio_policy.cfg rename to services/audio_policy/etc/audio_policy.cfg diff --git a/services/etc/audio_policy.rc b/services/audio_policy/etc/audio_policy.rc similarity index 100% rename from services/etc/audio_policy.rc rename to services/audio_policy/etc/audio_policy.rc diff --git a/services/src/audio_policy/server/etc/audio_interrupt_policy_config.xml b/services/audio_policy/server/config/audio_interrupt_policy_config.xml similarity index 100% rename from services/src/audio_policy/server/etc/audio_interrupt_policy_config.xml rename to services/audio_policy/server/config/audio_interrupt_policy_config.xml diff --git a/services/include/audio_policy/server/audio_capturer_state_change_listener_proxy.h b/services/audio_policy/server/include/audio_capturer_state_change_listener_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_capturer_state_change_listener_proxy.h rename to services/audio_policy/server/include/audio_capturer_state_change_listener_proxy.h diff --git a/services/include/audio_policy/server/audio_client_tracker_callback_proxy.h b/services/audio_policy/server/include/audio_client_tracker_callback_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_client_tracker_callback_proxy.h rename to services/audio_policy/server/include/audio_client_tracker_callback_proxy.h diff --git a/services/include/audio_policy/server/audio_group_handle.h b/services/audio_policy/server/include/audio_group_handle.h similarity index 100% rename from services/include/audio_policy/server/audio_group_handle.h rename to services/audio_policy/server/include/audio_group_handle.h diff --git a/services/include/audio_policy/server/audio_policy_manager_listener_proxy.h b/services/audio_policy/server/include/audio_policy_manager_listener_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_policy_manager_listener_proxy.h rename to services/audio_policy/server/include/audio_policy_manager_listener_proxy.h diff --git a/services/include/audio_policy/server/audio_policy_server.h b/services/audio_policy/server/include/audio_policy_server.h similarity index 100% rename from services/include/audio_policy/server/audio_policy_server.h rename to services/audio_policy/server/include/audio_policy_server.h diff --git a/services/include/audio_policy/server/audio_renderer_state_change_listener_proxy.h b/services/audio_policy/server/include/audio_renderer_state_change_listener_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_renderer_state_change_listener_proxy.h rename to services/audio_policy/server/include/audio_renderer_state_change_listener_proxy.h diff --git a/services/include/audio_policy/server/audio_ringermode_update_listener_proxy.h b/services/audio_policy/server/include/audio_ringermode_update_listener_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_ringermode_update_listener_proxy.h rename to services/audio_policy/server/include/audio_ringermode_update_listener_proxy.h diff --git a/services/include/audio_policy/server/audio_service_dump.h b/services/audio_policy/server/include/audio_service_dump.h similarity index 100% rename from services/include/audio_policy/server/audio_service_dump.h rename to services/audio_policy/server/include/audio_service_dump.h diff --git a/services/include/audio_policy/server/audio_stream_collector.h b/services/audio_policy/server/include/audio_stream_collector.h similarity index 100% rename from services/include/audio_policy/server/audio_stream_collector.h rename to services/audio_policy/server/include/audio_stream_collector.h diff --git a/services/include/audio_policy/server/audio_volume_key_event_callback_proxy.h b/services/audio_policy/server/include/audio_volume_key_event_callback_proxy.h similarity index 100% rename from services/include/audio_policy/server/audio_volume_key_event_callback_proxy.h rename to services/audio_policy/server/include/audio_volume_key_event_callback_proxy.h diff --git a/services/include/audio_policy/server/service/audio_policy_service.h b/services/audio_policy/server/include/service/audio_policy_service.h similarity index 100% rename from services/include/audio_policy/server/service/audio_policy_service.h rename to services/audio_policy/server/include/service/audio_policy_service.h diff --git a/services/include/audio_policy/server/service/common/audio_module_info.h b/services/audio_policy/server/include/service/common/audio_module_info.h similarity index 100% rename from services/include/audio_policy/server/service/common/audio_module_info.h rename to services/audio_policy/server/include/service/common/audio_module_info.h diff --git a/services/include/audio_policy/server/service/common/audio_session_callback.h b/services/audio_policy/server/include/service/common/audio_session_callback.h similarity index 100% rename from services/include/audio_policy/server/service/common/audio_session_callback.h rename to services/audio_policy/server/include/service/common/audio_session_callback.h diff --git a/services/include/audio_policy/server/service/config/audio_focus_parser.h b/services/audio_policy/server/include/service/config/audio_focus_parser.h similarity index 100% rename from services/include/audio_policy/server/service/config/audio_focus_parser.h rename to services/audio_policy/server/include/service/config/audio_focus_parser.h diff --git a/services/include/audio_policy/server/service/config/parser.h b/services/audio_policy/server/include/service/config/parser.h similarity index 100% rename from services/include/audio_policy/server/service/config/parser.h rename to services/audio_policy/server/include/service/config/parser.h diff --git a/services/include/audio_policy/server/service/config/parser_factory.h b/services/audio_policy/server/include/service/config/parser_factory.h similarity index 100% rename from services/include/audio_policy/server/service/config/parser_factory.h rename to services/audio_policy/server/include/service/config/parser_factory.h diff --git a/services/include/audio_policy/server/service/config/xml_parser.h b/services/audio_policy/server/include/service/config/xml_parser.h similarity index 100% rename from services/include/audio_policy/server/service/config/xml_parser.h rename to services/audio_policy/server/include/service/config/xml_parser.h diff --git a/services/include/audio_policy/server/service/interface/iaudio_policy_interface.h b/services/audio_policy/server/include/service/interface/iaudio_policy_interface.h similarity index 100% rename from services/include/audio_policy/server/service/interface/iaudio_policy_interface.h rename to services/audio_policy/server/include/service/interface/iaudio_policy_interface.h diff --git a/services/include/audio_policy/server/service/interface/idevice_status_observer.h b/services/audio_policy/server/include/service/interface/idevice_status_observer.h similarity index 100% rename from services/include/audio_policy/server/service/interface/idevice_status_observer.h rename to services/audio_policy/server/include/service/interface/idevice_status_observer.h diff --git a/services/include/audio_policy/server/service/interface/iport_observer.h b/services/audio_policy/server/include/service/interface/iport_observer.h similarity index 100% rename from services/include/audio_policy/server/service/interface/iport_observer.h rename to services/audio_policy/server/include/service/interface/iport_observer.h diff --git a/services/include/audio_policy/server/service/listener/device_status_listener.h b/services/audio_policy/server/include/service/listener/device_status_listener.h similarity index 100% rename from services/include/audio_policy/server/service/listener/device_status_listener.h rename to services/audio_policy/server/include/service/listener/device_status_listener.h diff --git a/services/include/audio_policy/server/service/manager/audio_adapter_manager.h b/services/audio_policy/server/include/service/manager/audio_adapter_manager.h similarity index 100% rename from services/include/audio_policy/server/service/manager/audio_adapter_manager.h rename to services/audio_policy/server/include/service/manager/audio_adapter_manager.h diff --git a/services/include/audio_policy/server/service/manager/audio_policy_manager_factory.h b/services/audio_policy/server/include/service/manager/audio_policy_manager_factory.h similarity index 100% rename from services/include/audio_policy/server/service/manager/audio_policy_manager_factory.h rename to services/audio_policy/server/include/service/manager/audio_policy_manager_factory.h diff --git a/services/src/audio_policy/server/audio_capturer_state_change_listener_proxy.cpp b/services/audio_policy/server/src/audio_capturer_state_change_listener_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_capturer_state_change_listener_proxy.cpp rename to services/audio_policy/server/src/audio_capturer_state_change_listener_proxy.cpp diff --git a/services/src/audio_policy/server/audio_client_tracker_callback_proxy.cpp b/services/audio_policy/server/src/audio_client_tracker_callback_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_client_tracker_callback_proxy.cpp rename to services/audio_policy/server/src/audio_client_tracker_callback_proxy.cpp diff --git a/services/src/audio_policy/server/audio_group_handle.cpp b/services/audio_policy/server/src/audio_group_handle.cpp similarity index 100% rename from services/src/audio_policy/server/audio_group_handle.cpp rename to services/audio_policy/server/src/audio_group_handle.cpp diff --git a/services/src/audio_policy/server/audio_policy_manager_listener_proxy.cpp b/services/audio_policy/server/src/audio_policy_manager_listener_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_policy_manager_listener_proxy.cpp rename to services/audio_policy/server/src/audio_policy_manager_listener_proxy.cpp diff --git a/services/src/audio_policy/server/audio_policy_manager_stub.cpp b/services/audio_policy/server/src/audio_policy_manager_stub.cpp similarity index 100% rename from services/src/audio_policy/server/audio_policy_manager_stub.cpp rename to services/audio_policy/server/src/audio_policy_manager_stub.cpp diff --git a/services/src/audio_policy/server/audio_policy_server.cpp b/services/audio_policy/server/src/audio_policy_server.cpp similarity index 100% rename from services/src/audio_policy/server/audio_policy_server.cpp rename to services/audio_policy/server/src/audio_policy_server.cpp diff --git a/services/src/audio_policy/server/audio_renderer_state_change_listener_proxy.cpp b/services/audio_policy/server/src/audio_renderer_state_change_listener_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_renderer_state_change_listener_proxy.cpp rename to services/audio_policy/server/src/audio_renderer_state_change_listener_proxy.cpp diff --git a/services/src/audio_policy/server/audio_ringermode_update_listener_proxy.cpp b/services/audio_policy/server/src/audio_ringermode_update_listener_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_ringermode_update_listener_proxy.cpp rename to services/audio_policy/server/src/audio_ringermode_update_listener_proxy.cpp diff --git a/services/src/audio_policy/server/audio_stream_collector.cpp b/services/audio_policy/server/src/audio_stream_collector.cpp similarity index 100% rename from services/src/audio_policy/server/audio_stream_collector.cpp rename to services/audio_policy/server/src/audio_stream_collector.cpp diff --git a/services/src/audio_policy/server/audio_stream_event_dispatcher.cpp b/services/audio_policy/server/src/audio_stream_event_dispatcher.cpp similarity index 100% rename from services/src/audio_policy/server/audio_stream_event_dispatcher.cpp rename to services/audio_policy/server/src/audio_stream_event_dispatcher.cpp diff --git a/services/src/audio_policy/server/audio_volume_key_event_callback_proxy.cpp b/services/audio_policy/server/src/audio_volume_key_event_callback_proxy.cpp similarity index 100% rename from services/src/audio_policy/server/audio_volume_key_event_callback_proxy.cpp rename to services/audio_policy/server/src/audio_volume_key_event_callback_proxy.cpp diff --git a/services/src/audio_policy/server/service/audio_policy_service.cpp b/services/audio_policy/server/src/service/audio_policy_service.cpp similarity index 100% rename from services/src/audio_policy/server/service/audio_policy_service.cpp rename to services/audio_policy/server/src/service/audio_policy_service.cpp diff --git a/services/src/audio_policy/server/service/config/audio_focus_parser.cpp b/services/audio_policy/server/src/service/config/audio_focus_parser.cpp similarity index 100% rename from services/src/audio_policy/server/service/config/audio_focus_parser.cpp rename to services/audio_policy/server/src/service/config/audio_focus_parser.cpp diff --git a/services/src/audio_policy/server/service/config/xml_parser.cpp b/services/audio_policy/server/src/service/config/xml_parser.cpp similarity index 100% rename from services/src/audio_policy/server/service/config/xml_parser.cpp rename to services/audio_policy/server/src/service/config/xml_parser.cpp diff --git a/services/src/audio_policy/server/audio_service_dump.cpp b/services/audio_policy/server/src/service/dump/audio_service_dump.cpp similarity index 100% rename from services/src/audio_policy/server/audio_service_dump.cpp rename to services/audio_policy/server/src/service/dump/audio_service_dump.cpp diff --git a/services/src/audio_policy/server/service/listener/device_status_listener.cpp b/services/audio_policy/server/src/service/listener/device_status_listener.cpp similarity index 100% rename from services/src/audio_policy/server/service/listener/device_status_listener.cpp rename to services/audio_policy/server/src/service/listener/device_status_listener.cpp diff --git a/services/src/audio_policy/server/service/manager/audio_adapter_manager.cpp b/services/audio_policy/server/src/service/manager/audio_adapter_manager.cpp similarity index 100% rename from services/src/audio_policy/server/service/manager/audio_adapter_manager.cpp rename to services/audio_policy/server/src/service/manager/audio_adapter_manager.cpp diff --git a/interfaces/inner_api/native/audiomanager/BUILD.gn b/services/audio_service/BUILD.gn similarity index 52% rename from interfaces/inner_api/native/audiomanager/BUILD.gn rename to services/audio_service/BUILD.gn index c461ccf3d20a1f9c1249d169a97e3e6f4e1db1d9..a6a8768b9c5f5686047040d7dfcc04337cb0630d 100644 --- a/interfaces/inner_api/native/audiomanager/BUILD.gn +++ b/services/audio_service/BUILD.gn @@ -9,7 +9,7 @@ # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and -# limitations under the License. +# limitations under the License. import("//build/ohos.gni") import("//drivers/hdf_core/adapter/uhdf2/uhdf.gni") @@ -18,10 +18,10 @@ pulseaudio_dir = "//third_party/pulseaudio" pulseaudio_build_path = "//foundation/multimedia/audio_framework/frameworks/native/pulseaudio" -group("audio_client_test_packages") { +group("audio_service_packages") { deps = [ - ":playback_test", - ":record_test", + ":audio_service", + ":audio_service_init", ] } @@ -34,11 +34,10 @@ config("audio_client_public_config") { "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", - "//foundation/multimedia/audio_framework/services/include/audio_service/common", - "//foundation/multimedia/audio_framework/services/include/audio_policy/client", - "//foundation/multimedia/audio_framework/services/include/audio_policy/common", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", + "//foundation/multimedia/audio_framework/services/audio_service/common/include", + "//foundation/multimedia/audio_framework/services/audio_policy/client/include", + "//foundation/multimedia/audio_framework/services/audio_policy/common/include", "//foundation/communication/ipc/interfaces/innerkits/ipc_core/include", "//utils/system/safwk/native/include", "//commonlibrary/c_utils/base/include", @@ -62,22 +61,22 @@ config("audio_client_public_config") { ohos_shared_library("audio_client") { install_enable = true sources = [ - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_group_manager.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_manager_listener_stub.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_manager_proxy.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_service_client.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_session.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_stream.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_stream_manager.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_stream_tracker.cpp", - "//foundation/multimedia/audio_framework/services/src/audio_service/client/audio_system_manager.cpp", + "client/src/audio_group_manager.cpp", + "client/src/audio_manager_listener_stub.cpp", + "client/src/audio_manager_proxy.cpp", + "client/src/audio_service_client.cpp", + "client/src/audio_session.cpp", + "client/src/audio_stream.cpp", + "client/src/audio_stream_manager.cpp", + "client/src/audio_stream_tracker.cpp", + "client/src/audio_system_manager.cpp", ] public_configs = [ ":audio_client_public_config" ] deps = [ - "//foundation/multimedia/audio_framework/frameworks/native/audiopolicy:audio_policy_client", "//foundation/multimedia/audio_framework/frameworks/native/pulseaudio/src/pulse:pulse", + "//foundation/multimedia/audio_framework/services/audio_policy:audio_policy_client", "//third_party/bounds_checking_function:libsec_static", ] @@ -92,6 +91,13 @@ ohos_shared_library("audio_client") { part_name = "multimedia_audio_framework" } +group("audio_client_test_packages") { + deps = [ + ":playback_test", + ":record_test", + ] +} + ohos_executable("playback_test") { install_enable = false @@ -140,3 +146,71 @@ ohos_executable("audio_multichannel_test") { part_name = "multimedia_audio_framework" subsystem_name = "multimedia" } + +ohos_prebuilt_etc("audio_service_init") { + source = "etc/pulseaudio.cfg" + relative_install_dir = "init" + part_name = "multimedia_audio_framework" + subsystem_name = "multimedia" +} + +config("audio_service_config") { + visibility = [ ":*" ] + + include_dirs = [ + "common/include", + "server/include", + "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocommon/include", + "//base/hiviewdfx/hilog/interfaces/native/innerkits/include", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/common", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/primary", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/remote", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/file", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink/bluetooth", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/common", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source/primary", + "//drivers/peripheral/audio/interfaces/include", + "include/audio_service/common", + ] + + if (target_cpu == "arm") { + cflags = [ "-DBINDER_IPC_32BIT" ] + } +} + +ohos_shared_library("audio_service") { + install_enable = true + + sources = [ + "server/src/audio_manager_listener_proxy.cpp", + "server/src/audio_manager_stub.cpp", + "server/src/audio_server.cpp", + ] + + configs = [ ":audio_service_config" ] + + if ("${product_name}" == "m40") { + cflags = [ "-DPRODUCT_M40" ] + } + + deps = [ + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:audio_renderer_sink", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:remote_audio_renderer_sink", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/sink:renderer_sink_adapter", + "//foundation/multimedia/audio_framework/frameworks/native/hdiadapter/source:audio_capturer_source", + "//foundation/multimedia/audio_framework/frameworks/native/pulseaudio/src/daemon:pulseaudio", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", + ] + + external_deps = [ + "access_token:libaccesstoken_sdk", + "c_utils:utils", + "hiviewdfx_hilog_native:libhilog", + "ipc:ipc_core", + "safwk:system_ability_fwk", + "samgr:samgr_proxy", + ] + + subsystem_name = "multimedia" + part_name = "multimedia_audio_framework" +} diff --git a/services/include/audio_service/client/audio_error.h b/services/audio_service/client/include/audio_error.h similarity index 100% rename from services/include/audio_service/client/audio_error.h rename to services/audio_service/client/include/audio_error.h diff --git a/services/include/audio_manager_base.h b/services/audio_service/client/include/audio_manager_base.h similarity index 100% rename from services/include/audio_manager_base.h rename to services/audio_service/client/include/audio_manager_base.h diff --git a/services/include/audio_service/client/audio_manager_listener_stub.h b/services/audio_service/client/include/audio_manager_listener_stub.h similarity index 100% rename from services/include/audio_service/client/audio_manager_listener_stub.h rename to services/audio_service/client/include/audio_manager_listener_stub.h diff --git a/services/include/audio_service/client/audio_manager_proxy.h b/services/audio_service/client/include/audio_manager_proxy.h similarity index 100% rename from services/include/audio_service/client/audio_manager_proxy.h rename to services/audio_service/client/include/audio_manager_proxy.h diff --git a/services/include/audio_service/client/audio_server_death_recipient.h b/services/audio_service/client/include/audio_server_death_recipient.h similarity index 100% rename from services/include/audio_service/client/audio_server_death_recipient.h rename to services/audio_service/client/include/audio_server_death_recipient.h diff --git a/services/include/audio_service/client/audio_service_client.h b/services/audio_service/client/include/audio_service_client.h similarity index 100% rename from services/include/audio_service/client/audio_service_client.h rename to services/audio_service/client/include/audio_service_client.h diff --git a/services/include/audio_service/client/audio_timer.h b/services/audio_service/client/include/audio_timer.h similarity index 100% rename from services/include/audio_service/client/audio_timer.h rename to services/audio_service/client/include/audio_timer.h diff --git a/services/src/audio_service/client/audio_group_manager.cpp b/services/audio_service/client/src/audio_group_manager.cpp similarity index 100% rename from services/src/audio_service/client/audio_group_manager.cpp rename to services/audio_service/client/src/audio_group_manager.cpp diff --git a/services/src/audio_service/client/audio_manager_listener_stub.cpp b/services/audio_service/client/src/audio_manager_listener_stub.cpp similarity index 100% rename from services/src/audio_service/client/audio_manager_listener_stub.cpp rename to services/audio_service/client/src/audio_manager_listener_stub.cpp diff --git a/services/src/audio_service/client/audio_manager_proxy.cpp b/services/audio_service/client/src/audio_manager_proxy.cpp similarity index 100% rename from services/src/audio_service/client/audio_manager_proxy.cpp rename to services/audio_service/client/src/audio_manager_proxy.cpp diff --git a/services/src/audio_service/client/audio_service_client.cpp b/services/audio_service/client/src/audio_service_client.cpp similarity index 100% rename from services/src/audio_service/client/audio_service_client.cpp rename to services/audio_service/client/src/audio_service_client.cpp diff --git a/services/src/audio_service/client/audio_session.cpp b/services/audio_service/client/src/audio_session.cpp similarity index 100% rename from services/src/audio_service/client/audio_session.cpp rename to services/audio_service/client/src/audio_session.cpp diff --git a/services/src/audio_service/client/audio_stream.cpp b/services/audio_service/client/src/audio_stream.cpp similarity index 100% rename from services/src/audio_service/client/audio_stream.cpp rename to services/audio_service/client/src/audio_stream.cpp diff --git a/services/src/audio_service/client/audio_stream_manager.cpp b/services/audio_service/client/src/audio_stream_manager.cpp similarity index 100% rename from services/src/audio_service/client/audio_stream_manager.cpp rename to services/audio_service/client/src/audio_stream_manager.cpp diff --git a/services/src/audio_service/client/audio_stream_tracker.cpp b/services/audio_service/client/src/audio_stream_tracker.cpp similarity index 100% rename from services/src/audio_service/client/audio_stream_tracker.cpp rename to services/audio_service/client/src/audio_stream_tracker.cpp diff --git a/services/src/audio_service/client/audio_system_manager.cpp b/services/audio_service/client/src/audio_system_manager.cpp similarity index 100% rename from services/src/audio_service/client/audio_system_manager.cpp rename to services/audio_service/client/src/audio_system_manager.cpp diff --git a/services/include/audio_service/common/i_standard_audio_server_manager_listener.h b/services/audio_service/common/include/i_standard_audio_server_manager_listener.h similarity index 100% rename from services/include/audio_service/common/i_standard_audio_server_manager_listener.h rename to services/audio_service/common/include/i_standard_audio_server_manager_listener.h diff --git a/services/etc/pulseaudio.cfg b/services/audio_service/etc/pulseaudio.cfg similarity index 100% rename from services/etc/pulseaudio.cfg rename to services/audio_service/etc/pulseaudio.cfg diff --git a/services/etc/pulseaudio.rc b/services/audio_service/etc/pulseaudio.rc similarity index 100% rename from services/etc/pulseaudio.rc rename to services/audio_service/etc/pulseaudio.rc diff --git a/services/include/audio_service/server/audio_manager_listener_proxy.h b/services/audio_service/server/include/audio_manager_listener_proxy.h similarity index 100% rename from services/include/audio_service/server/audio_manager_listener_proxy.h rename to services/audio_service/server/include/audio_manager_listener_proxy.h diff --git a/services/include/audio_service/server/audio_server.h b/services/audio_service/server/include/audio_server.h similarity index 100% rename from services/include/audio_service/server/audio_server.h rename to services/audio_service/server/include/audio_server.h diff --git a/services/src/audio_service/server/audio_manager_listener_proxy.cpp b/services/audio_service/server/src/audio_manager_listener_proxy.cpp similarity index 100% rename from services/src/audio_service/server/audio_manager_listener_proxy.cpp rename to services/audio_service/server/src/audio_manager_listener_proxy.cpp diff --git a/services/src/audio_service/server/audio_manager_stub.cpp b/services/audio_service/server/src/audio_manager_stub.cpp similarity index 100% rename from services/src/audio_service/server/audio_manager_stub.cpp rename to services/audio_service/server/src/audio_manager_stub.cpp diff --git a/services/src/audio_service/server/audio_server.cpp b/services/audio_service/server/src/audio_server.cpp similarity index 100% rename from services/src/audio_service/server/audio_server.cpp rename to services/audio_service/server/src/audio_server.cpp diff --git a/test/fuzztest/audiomanager_fuzzer/BUILD.gn b/test/fuzztest/audiomanager_fuzzer/BUILD.gn index d8caa2c31fd2967ef24b5902bf00162aa0b4660b..811b889f5996ee59dfbb049319ad4ad66562de8c 100644 --- a/test/fuzztest/audiomanager_fuzzer/BUILD.gn +++ b/test/fuzztest/audiomanager_fuzzer/BUILD.gn @@ -34,7 +34,7 @@ ohos_fuzztest("AudioManagerFuzzTest") { sources = [ "audio_manager_fuzzer.cpp" ] - deps = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client" ] + deps = [ "//foundation/multimedia/audio_framework/services/audio_service:audio_client" ] external_deps = [ "c_utils:utils" ] } diff --git a/test/moduletest/audiopolicy/BUILD.gn b/test/moduletest/audiopolicy/BUILD.gn index f5a209193a742343611e27292408fa1b150d6b85..8ad8c2385429495cfd7ac35c6a14faecd191691e 100644 --- a/test/moduletest/audiopolicy/BUILD.gn +++ b/test/moduletest/audiopolicy/BUILD.gn @@ -32,6 +32,6 @@ ohos_moduletest("audio_policy_module_test") { sources = [ "1.0/src/audio_policy_test.cpp" ] - deps = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client" ] + deps = [ "//foundation/multimedia/audio_framework/services/audio_service:audio_client" ] external_deps = [ "c_utils:utils" ] } diff --git a/test/unittest/group_manager_test/BUILD.gn b/test/unittest/group_manager_test/BUILD.gn index 80943e30ec738b43c590b80217a92673fea74ee9..1d172722706120e2d94ada144b47ae3975c89f7f 100644 --- a/test/unittest/group_manager_test/BUILD.gn +++ b/test/unittest/group_manager_test/BUILD.gn @@ -31,8 +31,8 @@ ohos_unittest("audio_group_manager_unit_test") { sources = [ "src/audio_group_manager_unit_test.cpp" ] deps = [ - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ "c_utils:utils" ] } diff --git a/test/unittest/manager_test/BUILD.gn b/test/unittest/manager_test/BUILD.gn index 2efadecfc2df035a8b6bcde69d5e4bd0bf9c229d..a7b9da2f0391a37774a42532aa002fe72d7af068 100644 --- a/test/unittest/manager_test/BUILD.gn +++ b/test/unittest/manager_test/BUILD.gn @@ -31,8 +31,8 @@ ohos_unittest("audio_manager_unit_test") { sources = [ "src/audio_manager_unit_test.cpp" ] deps = [ - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ "c_utils:utils" ] } diff --git a/test/unittest/opensles_capture_test/BUILD.gn b/test/unittest/opensles_capture_test/BUILD.gn index 8c18b17da107fdb90fe686e53d174a797636d427..4b03dfbee597e60119a5aff18e035ea0d376c3c3 100644 --- a/test/unittest/opensles_capture_test/BUILD.gn +++ b/test/unittest/opensles_capture_test/BUILD.gn @@ -28,8 +28,7 @@ config("audio_capture_config") { "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiosession/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/services/test", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", diff --git a/test/unittest/opensles_test/BUILD.gn b/test/unittest/opensles_test/BUILD.gn index 5935ff63f792e33296cc02d82c4a22be879ceab3..fef89a9125b9a149d2e563bc8c6803ba99022d91 100644 --- a/test/unittest/opensles_test/BUILD.gn +++ b/test/unittest/opensles_test/BUILD.gn @@ -28,8 +28,7 @@ config("audio_renderer_config") { "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiostream/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiosession/include", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager/include", - "//foundation/multimedia/audio_framework/services/include", - "//foundation/multimedia/audio_framework/services/include/audio_service/client", + "//foundation/multimedia/audio_framework/services/audio_service/client/include", "//foundation/multimedia/audio_framework/services/test", "//commonlibrary/c_utils/base/include", "$pulseaudio_dir/src", diff --git a/test/unittest/stream_manager_test/BUILD.gn b/test/unittest/stream_manager_test/BUILD.gn index b0fcbf5899323e137ecc58e9717d341e80ea1134..671b67e4fdddc28e885f57b316f07ac40554b60e 100644 --- a/test/unittest/stream_manager_test/BUILD.gn +++ b/test/unittest/stream_manager_test/BUILD.gn @@ -34,8 +34,8 @@ ohos_unittest("audio_stream_manager_unit_test") { deps = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiocapturer:audio_capturer", - "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client", "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiorenderer:audio_renderer", + "//foundation/multimedia/audio_framework/services/audio_service:audio_client", ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] diff --git a/test/unittest/volume_change_test/BUILD.gn b/test/unittest/volume_change_test/BUILD.gn index 4cb67c4fdb6f229370a2b9a3064c3738156b41ac..38428fd22d451dd02779656bb3c6c6d47413ffd9 100644 --- a/test/unittest/volume_change_test/BUILD.gn +++ b/test/unittest/volume_change_test/BUILD.gn @@ -31,6 +31,6 @@ ohos_unittest("audio_volume_change_unit_test") { sources = [ "src/audio_volume_change_unit_test.cpp" ] - deps = [ "//foundation/multimedia/audio_framework/interfaces/inner_api/native/audiomanager:audio_client" ] + deps = [ "//foundation/multimedia/audio_framework/services/audio_service:audio_client" ] external_deps = [ "hiviewdfx_hilog_native:libhilog" ] }