⺣ - רҵ·ĵϷƽ̨

ǰλãҳ > 关于android电话录音问题的详细分?- 百度文库

关于android电话录音问题的详细分?- 百度文库

  • 62 Ķ
  • 3
  • 2026/4/24 11:57:43

android绰¼ϸ

ߣè

һֱϿ˵£ʵʵDZˮԱһʱд㶫ϣԴҪͬ·

ǹAndroid¼ķ϶˵Android¼ʱ¼µźŶǻźšǶûиϸ˵Ϊʲô

֪Android½е绰¼Ĵܼ򵥣

£

recorder = new MediaRecorder();

//modeΪ VOICE_UPLINK|VOICE_DOWNLINK|VOICE_CALL recorder.setAudioSource(mode);

recorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT); recorder.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT); recorder.setOutputFile(recFile.getAbsolutePath()); //׼¼

recorder.prepare(); //¼

recorder.start(); //ֹͣ¼

recorder.stop();

MediaRecorder.AudioSourceж³

recorder.setAudioSource

͵绰¼ص3 Voice_call ¼··

Voice_uplink ¼·ӦǶԷ Voice_downlink ¼·Ӧҷ

ϹjavaεnativeĽֻܺܶ࣬򵥽ܡJAVAMediaRecorderķñC++룬ЩΪlibmedia.so,̼ͨͨŻBinderMediaServerͨţMediaServerյ󣬰Щתopencore

Androidýͼصġ

ͼԿͻ˵õıشλlibmedia.soУý̵õĴλlibmediaplayerservice.soСlibmediaplayerservice.soٵõײlibopencoreplayer.soɾ幦ܡ

ͨýתopencoreСڿͻmediarecorderý̽磬ⷽºܶ࣬Ͳܡ ֮ܶͻ˵һmediarecorderͷ˵MediaRecorderClientӦͻͨmediarecorder͵̼ͨͨŻնᷢ͵˵MediaRecorderClientСڲclientλframeworks\\base\\media\\libmediaplayerservice\\MediaRecorderClient.h

class MediaRecorderClient : public BnMediaRecorder { public: virtual

status_t

setCamera(const sp& camera);

virtual status_t setPreviewSurface(const sp& surface); virtual status_t setVideoSource(int vs); virtual status_t setAudioSource(int as); virtual status_t setOutputFormat(int of); virtual status_t setVideoEncoder(int ve); virtual status_t setAudioEncoder(int ae);

virtual status_t setOutputFile(const char* path);

virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); virtual status_t setVideoSize(int width, int height); virtual status_t setVideoFrameRate(int frames_per_second);

virtual status_t setParameters(const String8& params);

virtual status_t setListener(const sp& listener); virtual status_t prepare();

virtual status_t getMaxAmplitude(int* max); virtual status_t start(); virtual status_t stop(); virtual

status_t reset();

virtual status_t init(); virtual status_t close(); virtual status_t release(); }

Կ󲿷ֿͻ˷MediaRecorderClientжжӦǵÿͻ˵recorder.start();ʱõMediaRecorderClientеstart

status_t MediaRecorderClient::start() {

LOGV(\);

Mutex::Autolock lock(mLock); if (mRecorder == NULL) {

LOGE(\); return NO_INIT; }

return mRecorder->start(); //תmRecorder }

//mRecorderMediaRecorderClient캯дġ

MediaRecorderClient::MediaRecorderClient(const sp& service, pid_t pid) {

#ifndef NO_OPENCORE {

//PVMediaRecorder¼

mRecorder = new PVMediaRecorder(); } #else {

mRecorder = NULL; } #endif

mMediaPlayerService = service; }

ĵҲһеתPVMediaRecorderPVMediaRecorderopencoreеĶӦ¼ࡣ

ǾֱӽopencoreȿPVMediaRecorderλ

frameworks\\base\\include\\media\\PVMediaRecorder.hԿͻ˵ķжӦķ

class PVMediaRecorder : public MediaRecorderBase { public:

PVMediaRecorder();

virtual ~PVMediaRecorder();

virtual status_t init();

virtual status_t setAudioSource(audio_source as); virtual status_t setVideoSource(video_source vs); virtual status_t setOutputFormat(output_format of); virtual status_t setAudioEncoder(audio_encoder ae); virtual status_t setVideoEncoder(video_encoder ve); virtual status_t setVideoSize(int width, int height); virtual status_t setVideoFrameRate(int frames_per_second); virtual status_t setCamera(const sp& camera);

virtual status_t setPreviewSurface(const sp& surface); virtual status_t setOutputFile(const char *path);

virtual status_t setOutputFile(int fd, int64_t offset, int64_t length); virtual status_t setParameters(const String8& params);

virtual status_t setListener(const sp& listener); virtual status_t prepare(); virtual status_t start(); virtual status_t stop(); virtual status_t close(); virtual status_t reset();

virtual status_t getMaxAmplitude(int *max);

private:

status_t doStop();

AuthorDriverWrapper* mAuthorDriverWrapper;

PVMediaRecorder(const PVMediaRecorder &);

PVMediaRecorder &operator=(const PVMediaRecorder &); };

Opencoreһ3Ŀ⣬ϵȽϸӣopencoreϸandroidԴµexternal\\opencore\\docҲⷽϣȫ

֮ܶOpencoreṩһý忪ܣҪʹOpencoreжýӦãԱӦڶṩװӿڣڵײṩӲӿڣOpencoreṩм㹦ܡն㷢͵󣬾սײӲandroidϵͳϣ

  • ղ
  • Υٱ
  • Ȩ
ĵ10.00 Ԫ VIP
ߣ...

92ƪĵ

ĵ飺

android绰¼ϸ ߣè һֱϿ˵£ʵʵDZˮԱһʱд㶫ϣԴҪͬ· ǹAndroid¼ķ϶˵Android¼ʱ¼µźŶǻźšǶûиϸ˵Ϊʲô ֪Android½е绰¼Ĵܼ򵥣 £ recorder = new MediaRecorder(); //modeΪ VOICE_UPLINK|VOICE_DOWNLINK|VOICE_CALL recorder.setAudioSource(mode); recorder.setOut

οͿͨغɸƺŰ棩
ƪ
ʱؼۣ10 Ԫ/ ԭ:20Ԫ
VIP
ؼۣ29 Ԫ/ ԭ:99Ԫ
0.3 Ԫ/ ÿ150
ȫվɸ
VIP
ؼۣ29 Ԫ/ ԭ:99Ԫ
0.3 Ԫ/ ÿ150
ȫվɸ
עĵпܡֻĿ¼ݲȫ֮ǰעѸ޷ػ⣬ϵЭ㴦
΢ţfanwen365 QQ370150219
Copyright © ⺣ All Rights Reserved. ICP16052595-3 վͼ ͷQQ370150219 䣺370150219@qq.com