国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android平臺RTMP推送或GB28181設(shè)備接入端如何實現(xiàn)采集audio音量放大?

這篇具有很好參考價值的文章主要介紹了Android平臺RTMP推送或GB28181設(shè)備接入端如何實現(xiàn)采集audio音量放大?。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

我們在做Android平臺RTMP推送和GB28181設(shè)備對接的時候,遇到這樣的問題,有的設(shè)備,麥克風(fēng)采集出來的audio,音量過高或過低,特別是有些設(shè)備,采集到的麥克風(fēng)聲音過低,導(dǎo)致播放端聽不清前端采集的audio,這時候,就需要針對采集到的audio,做音量放大處理。

先說如何采集,android平臺通用的做法是采集audiorecord,設(shè)置audio的采樣率和channels,為了便于數(shù)據(jù)進(jìn)行二次處理,或者同時投遞給多個實例,我們的做法,是把采集到的audio,回調(diào)上來,然后再設(shè)置到j(luò)ni層:

void CheckInitAudioRecorder() {
  if (audioRecord_ == null) {
    audioRecord_ = new NTAudioRecordV2(this);
  }

  if (audioRecord_ != null) {
    Log.i(TAG, "CheckInitAudioRecorder call audioRecord_.start()+++...");

    audioRecordCallback_ = new NTAudioRecordV2CallbackImpl();

    audioRecord_.AddCallback(audioRecordCallback_);

    audioRecord_.Start(16000, 1);

    Log.i(TAG, "CheckInitAudioRecorder call audioRecord_.start()---...");
  }
}

audio回調(diào)處理:

class NTAudioRecordV2CallbackImpl implements NTAudioRecordV2Callback {
  @Override
  public void onNTAudioRecordV2Frame(ByteBuffer data, int size, int sampleRate, int channel, int per_channel_sample_number) {

    if ((isPushingRtmp || isRTSPPublisherRunning) && publisherHandle != 0) {
      libPublisher.SmartPublisherOnPCMData(publisherHandle, data, size, sampleRate, channel, per_channel_sample_number);
    }
  }
}

如何實現(xiàn)audio音量放大?

輸入音量的調(diào)節(jié),需要注意的是,處理音頻音量時要盡可能線性,以防止溢出。我們針對jni層的設(shè)計如下:

/**
	 * 設(shè)置輸入音量, 這個接口一般不建議調(diào)用, 在一些特殊情況下可能會用, 一般不建議放大音量
	 *
	 * @param index: 一般是0和1, 如果沒有混音的只用0, 有混音的話, 0,1分別設(shè)置音量
	 *
	 * @param volume: 音量,默認(rèn)是1.0,范圍是[0.0, 5.0], 設(shè)置成0靜音, 1音量不變
	 *
	 * @return {0} if successful
	 */
	public native int SmartPublisherSetInputAudioVolume(long handle, int index, float volume);

調(diào)用邏輯如下:

Android平臺RTMP推送或GB28181設(shè)備接入端如何實現(xiàn)采集audio音量放大?,GB28181接入,流媒體,GB28181推流,GB28181安卓端,GB28181音量放大,GB28181 Android,大牛直播SDK

in_audio_volume_selector_ = (Spinner) findViewById(R.id.in_audio_volume_selector);

        final String[] in_audio_volume_sel = new String[]{"0", "0.2", "0.5", "0.8", "1", "1.5", "2", "2.5", "3", "3.5", "4", "4.5", "5"};
        ArrayAdapter<String> adapter_in_audio_volume = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, in_audio_volume_sel);

        adapter_in_audio_volume.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        in_audio_volume_selector_.setAdapter(adapter_in_audio_volume);

        in_audio_volume_selector_.setSelection(4, true);

        in_audio_volume_selector_.setOnItemSelectedListener(new OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                                       int position, long id) {
                Log.i(TAG, "Currently audio volume choosing: " + in_audio_volume_sel[position]);

                in_audio_volume_ = Float.parseFloat(in_audio_volume_sel[position]);

                Log.i(TAG, "Choose audio volume=" + in_audio_volume_);

                if (isPushingRtmp || isRTSPPublisherRunning) {
                    if (libPublisher != null && publisherHandle != 0) {
                        libPublisher.SmartPublisherSetInputAudioVolume(publisherHandle, 0, in_audio_volume_);
                    }
                }
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

感興趣的開發(fā)者,可以參考實現(xiàn),需要注意的是,audio采集可能不限于麥克風(fēng),也可能是第三方數(shù)據(jù)采集源,所以接口設(shè)計的時候,盡量考慮在jni層針對數(shù)據(jù)源做處理,此外,除了音量放大外,還可以做音量縮小,或者實時靜音。

?文章來源地址http://www.zghlxwxcb.cn/news/detail-645038.html

到了這里,關(guān)于Android平臺RTMP推送或GB28181設(shè)備接入端如何實現(xiàn)采集audio音量放大?的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包