| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211 |
- #ifndef ECSDKAUDIOMANAGER_H
- #define ECSDKAUDIOMANAGER_H
- #include "ECSDKTypes.h"
- namespace ECSDKFrameWork {
- /*!
- * \brief The base class of audio player object.
- *
- * A audio player is used to play audio data from our phone app.
- * You need to inherit and implement each interface
- *
- */
- class EC_DLL_EXPORT IECAudioPlayer
- {
- public:
- /*!
- * \brief Virtual destructor.
- */
- virtual ~IECAudioPlayer();
- /*!
- * \brief Used to start the audio player.
- *
- * \param type Audio types, including intercom, navigation, VR, music
- *
- * \param info Format of audio data
- *
- * \note This interface is called when the phone clicks to play music,
- * and you may need to initialize the audio decoder on this interface.
- */
- virtual void start(ECAudioType type, const ECAudioInfo& info) = 0;
- /*!
- * \brief Used to stop the audio player.
- *
- * \param type Audio types, including intercom, navigation, VR, music
- *
- * \note This interface is called back when the phone clicks to stop playing music.
- */
- virtual void stop(ECAudioType type) = 0;
- /*!
- * \brief Used to play the audio data.
- *
- * \note
- * - Before call this, you must ensure the audio player has been initialized successfully.\n
- * - A pure virtual function derived class must implement it.
- */
- virtual void play(ECAudioType type, const void* data, uint32_t len) = 0;
- /*!
- * \brief Used to set audio's volume.
- *
- * \param type Audio types, including intercom, navigation, VR, music
- *
- * \note A pure virtual function derived class must implement it.
- */
- virtual void setVolume(ECAudioType type, uint32_t vol) = 0;
- };
- /*!
- * \brief The base class of audio recorder object.
- *
- * A audio recorder is used to record by using the system microphone and upload audio data to our phone app.
- *
- */
- class EC_DLL_EXPORT IECAudioRecorder
- {
- public:
- /*!
- * \brief Virtual destructor.
- */
- virtual ~IECAudioRecorder();
- /*!
- * \brief Used to start the audio recorder.
- *
- * \param info Format of audio data
- *
- * \note When you tap the phone's microphone, this interface is called back,
- * and you get to initialize the recording device here
- */
- virtual void start(const ECAudioInfo& info) = 0;
- /**
- * @brief Used to provide recording data.
- *
- * @param data The object that holds the data
- *
- * @return 0 on successful operation, -1 on the microphone equipment is not ready, -2 on unknown error
- *
- * @note You need to implement this interface to provide the recording data.When the ECSDKFramework calls start,
- * a thread is started to invoke the interface to retrieve the recording data.
- *
- */
- virtual int32_t record(string& data) = 0;
- /*!
- * \brief Used to stop the audio recorder.
- *
- * \note A pure virtual function derived class must implement it.
- */
- virtual void stop() = 0;
- };
- /**
- * @brief The ECSDKAudioPlayer class
- */
- class EC_DLL_EXPORT ECSDKAudioManager
- {
- public:
- /**
- * @brief getInstance
- *
- * @return ECSDK_OK on success, others on fail.
- */
- static ECSDKAudioManager *getInstance();
- /**
- * @brief initialize
- * @param AideoPlayerObject
- * @return ECSDK_OK on success, others on fail.
- */
- virtual bool initialize(IECAudioPlayer* audeoPlayerObject, IECAudioRecorder* audioRecorder) = 0;
- /**
- * @brief release
- *
- * @return ECSDK_OK on success, others on fail.
- */
- virtual void release() = 0;
- /**
- * @brief enableDownloadPhoneAppAudio
- *
- * @param supportType : The type of audio to be transmitted, for example EC_AUDIO_TYPE_TTS | EC_AUDIO_TYPE_VR
- *
- * @return ECSDK_OK on success, others on fail.
- */
- virtual int32_t enableDownloadPhoneAppAudio(uint32_t supportType, bool autoChangeToBT = true) = 0;
- /**
- * @brief disableDownloadPhoneAppAudio
- *
- * @return ECSDK_OK on success, others on fail.
- */
- virtual int32_t disableDownloadPhoneAppAudio() = 0;
- /**
- * @brief Enable downloading system audio form phone.Current avaliable on iPhone Lighting Mode;
- *
- * @return EC_OK on success, others on fail.
- *
- * @note The audio type of the callback is EC_AUDIO_TYPE_MUSIC.
- *
- */
- virtual int32_t enableDownloadSystemAudio() = 0;
- /**
- * @brief Disable downloading system audio.
- *
- * @see enableDownloadSystemAudio
- */
- virtual void disableDownloadSystemAudio() = 0;
- /**
- * @brief Sets the caching time for audio data to be sent down from the phone. By default, it is not cached.
- *
- */
- virtual void setAudioCacheTime(uint32_t cacheTime) = 0;
- /**
- * @param enableDelay Whether to enable delay stop
- *
- * @param additionTime addition delay time
- *
- * @brief Whether to turn on to increase the stop delay based on the playback time of the data volume.
- *
- */
- virtual void enableAudioDelay(bool enableDelay, uint32_t additionTime = 0) = 0;
- /**
- * @brief This method will config Speech Enhancement parameters.
- *
- * @param key referred to EC_SE_PARAM_KEY_
- *
- * @param value the value to corresponding key.
- *
- * @note call this method before ECSDKFramework::start, then information with the config
- * will be send to connected phone when IECAudioRecorder::start trigered.
- * User just need to call this method once. The config will be always valid until next ECSDKFramework::start.
- */
- virtual int32_t configSEParam(const string& key, const string& value) = 0;
- protected:
- ECSDKAudioManager ();
- virtual ~ECSDKAudioManager();
- };
- }
- #endif // ECSDKAUDIOMANAGER_H
|