當前位置:首頁 » 安卓系統 » android錄音波形

android錄音波形

發布時間: 2022-06-24 13:54:08

⑴ 使用錄音軟體錄音聲音波形過小如何解決

右鍵點擊屏幕右下角的喇叭圖標(調聲音大小的哪個)選打開音量控制,線路輸入那一項靜音前打鉤,麥克風一項調到最高。
開始--設置--控制面板--聲音和音頻--語聲標簽--錄音一項的音量--麥克風一項選擇前打鉤並調到最高---其他均不打鉤---
如果還不行,在音效卡設置里把麥咖啡加強打鉤

⑵ android 如何做到播放音樂時動態波形



packagecom.AudioFx;

importandroid.app.Activity;
importandroid.content.Context;
importandroid.graphics.Canvas;
importandroid.graphics.Color;
importandroid.graphics.Paint;
importandroid.graphics.Rect;
importandroid.media.AudioManager;
importandroid.media.MediaPlayer;
importandroid.media.audiofx.Equalizer;
importandroid.media.audiofx.Visualizer;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.Gravity;
importandroid.view.View;
importandroid.view.ViewGroup;
importandroid.view.WindowManager;
importandroid.widget.LinearLayout;
importandroid.widget.SeekBar;
importandroid.widget.TextView;


{
privatestaticfinalStringTAG="AudioFxActivity";

_HEIGHT_DIP=160f;

;
privateVisualizermVisualizer;
privateEqualizermEqualizer;

;
;
;
privateTextViewmInfoView;

@Override
publicvoidonCreate(Bundleicicle)
{
super.onCreate(icicle);

mStatusTextView=newTextView(this);

mLinearLayout=newLinearLayout(this);
mLinearLayout.setOrientation(LinearLayout.VERTICAL);
mLinearLayout.addView(mStatusTextView);

setContentView(mLinearLayout);

//CreatetheMediaPlayer
mMediaPlayer=MediaPlayer.create(this,R.raw.my_life);
Log.d(TAG,
"MediaPlayeraudiosessionID:"
+mMediaPlayer.getAudioSessionId());

setupVisualizerFxAndUI();
setupEqualizerFxAndUI();

//
//receivedata,and
//whenitmakessensetoreceivedata.
mVisualizer.setEnabled(true);

//Whenthestreamends,wedon'tneedtocollectanymoredata.We
//don'tdothisin
//,
//non-Visualizerrelatedcode
//inthiscallback.
mMediaPlayer.setOnCompletionListener(newMediaPlayer.OnCompletionListener()
{
publicvoidonCompletion(MediaPlayermediaPlayer)
{
mVisualizer.setEnabled(false);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setVolumeControlStream(AudioManager.STREAM_SYSTEM);
mStatusTextView.setText("音樂播放完畢");
}
});

getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
mMediaPlayer.start();
mStatusTextView.setText("播放音樂中....");
}

()
{
//CreatetheEqualizerobject(anAudioEffectsubclass)andattachit
//toourmediaplayer,
//withadefaultpriority(0).
mEqualizer=newEqualizer(0,mMediaPlayer.getAudioSessionId());
mEqualizer.setEnabled(true);

TextVieweqTextView=newTextView(this);
eqTextView.setText("均衡器:");
mLinearLayout.addView(eqTextView);

shortbands=mEqualizer.getNumberOfBands();

finalshortminEQLevel=mEqualizer.getBandLevelRange()[0];
finalshortmaxEQLevel=mEqualizer.getBandLevelRange()[1];

for(shorti=0;i<bands;i++)
{
finalshortband=i;

TextViewfreqTextView=newTextView(this);
freqTextView.setLayoutParams(newViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
freqTextView.setGravity(Gravity.CENTER_HORIZONTAL);
freqTextView.setText((mEqualizer.getCenterFreq(band)/1000)
+"Hz");
mLinearLayout.addView(freqTextView);

LinearLayoutrow=newLinearLayout(this);
row.setOrientation(LinearLayout.HORIZONTAL);

TextViewminDbTextView=newTextView(this);
minDbTextView.setLayoutParams(newViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
minDbTextView.setText((minEQLevel/100)+"dB");

TextViewmaxDbTextView=newTextView(this);
maxDbTextView.setLayoutParams(newViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
maxDbTextView.setText((maxEQLevel/100)+"dB");

LinearLayout.LayoutParamslayoutParams=newLinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
layoutParams.weight=1;
SeekBarbar=newSeekBar(this);
bar.setLayoutParams(layoutParams);
bar.setMax(maxEQLevel-minEQLevel);
bar.setProgress(mEqualizer.getBandLevel(band));

bar.setOnSeekBarChangeListener(newSeekBar.OnSeekBarChangeListener()
{
publicvoidonProgressChanged(SeekBarseekBar,intprogress,
booleanfromUser)
{
mEqualizer.setBandLevel(band,(short)(progress+minEQLevel));
}

(SeekBarseekBar)
{
}

publicvoidonStopTrackingTouch(SeekBarseekBar)
{
}
});

row.addView(minDbTextView);
row.addView(bar);
row.addView(maxDbTextView);

mLinearLayout.addView(row);
}
}

()
{
mVisualizerView=newVisualizerView(this);
mVisualizerView.setLayoutParams(newViewGroup.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,
(int)(VISUALIZER_HEIGHT_DIP*getResources()
.getDisplayMetrics().density)));
mLinearLayout.addView(mVisualizerView);

mInfoView=newTextView(this);
StringinfoStr="";

int[]csr=Visualizer.getCaptureSizeRange();
if(csr!=null)
{
StringcsrStr="CaptureSizeRange:";
for(inti=0;i<csr.length;i++)
{
csrStr+=csr[i];
csrStr+="";
}
infoStr+=csrStr;
}

finalintmaxCR=Visualizer.getMaxCaptureRate();

infoStr=infoStr+" MaxCaptureRate:"+maxCR;

mInfoView.setText(infoStr);
mLinearLayout.addView(mInfoView);

mVisualizer=newVisualizer(mMediaPlayer.getAudioSessionId());
mVisualizer.setCaptureSize(256);
mVisualizer.setDataCaptureListener(
newVisualizer.OnDataCaptureListener()
{
(Visualizervisualizer,
byte[]bytes,intsamplingRate)
{
mVisualizerView.updateVisualizer(bytes);
}

publicvoidonFftDataCapture(Visualizervisualizer,
byte[]fft,intsamplingRate)
{
mVisualizerView.updateVisualizer(fft);
}
},maxCR/2,false,true);
}

@Override
protectedvoidonPause()
{
super.onPause();

if(isFinishing()&&mMediaPlayer!=null)
{
mVisualizer.release();
mEqualizer.release();
mMediaPlayer.release();
mMediaPlayer=null;
}
}

/**
*
*{@linkVisualizer.OnDataCaptureListener#onWaveFormDataCapture}
*/

{
privatebyte[]mBytes;
privatefloat[]mPoints;
privateRectmRect=newRect();

privatePaintmForePaint=newPaint();
privateintmSpectrumNum=48;
privatebooleanmFirst=true;

publicVisualizerView(Contextcontext)
{
super(context);
init();
}

privatevoidinit()
{
mBytes=null;

mForePaint.setStrokeWidth(8f);
mForePaint.setAntiAlias(true);
mForePaint.setColor(Color.rgb(0,128,255));
}

publicvoipdateVisualizer(byte[]fft)
{
if(mFirst)
{
mInfoView.setText(mInfoView.getText().toString()+" CaptureSize:"+fft.length);
mFirst=false;
}


byte[]model=newbyte[fft.length/2+1];

model[0]=(byte)Math.abs(fft[0]);
for(inti=2,j=1;j<mSpectrumNum;)
{
model[j]=(byte)Math.hypot(fft[i],fft[i+1]);
i+=2;
j++;
}
mBytes=model;
invalidate();
}

@Override
protectedvoidonDraw(Canvascanvas)
{
super.onDraw(canvas);

if(mBytes==null)
{
return;
}

if(mPoints==null||mPoints.length<mBytes.length*4)
{
mPoints=newfloat[mBytes.length*4];
}

mRect.set(0,0,getWidth(),getHeight());

//繪制波形
//for(inti=0;i<mBytes.length-1;i++){
//mPoints[i*4]=mRect.width()*i/(mBytes.length-1);
//mPoints[i*4+1]=mRect.height()/2
//+((byte)(mBytes[i]+128))*(mRect.height()/2)/128;
//mPoints[i*4+2]=mRect.width()*(i+1)/(mBytes.length-1);
//mPoints[i*4+3]=mRect.height()/2
//+((byte)(mBytes[i+1]+128))*(mRect.height()/2)/128;
//}

//繪制頻譜
finalintbaseX=mRect.width()/mSpectrumNum;
finalintheight=mRect.height();

for(inti=0;i<mSpectrumNum;i++)
{
if(mBytes[i]<0)
{
mBytes[i]=127;
}

finalintxi=baseX*i+baseX/2;

mPoints[i*4]=xi;
mPoints[i*4+1]=height;

mPoints[i*4+2]=xi;
mPoints[i*4+3]=height-mBytes[i];
}

canvas.drawLines(mPoints,mForePaint);
}
}
}

⑶ android 怎麼繪制時時音頻波形圖

安卓開發音頻mic口接收20khz的波形的方法? 一、手機音頻通信的特點 1、 通用性強:在智能手機普及的今天,手機的對外通信介面多種多樣,而其中以3.5mm的音頻介面通用新最強,基本所有的手機、平板電腦都會有這個介面,所以在一些要求通用性的設...

⑷ android鈴聲剪輯軟體的波形圖怎麼實現的

首先我先從手機錄制聲音的原理來給你說吧。
我們的話筒並不能直接錄制我們的聲音。而是通過我們的聲音發出的聲波改變了電流量還是電阻忘了的大小,然後我們的手機CPU也就是我們手機的大腦,記錄這個變化的過程,當我們要播放我們的錄音的時候。手機,再把記錄的變化過程還原R鈴聲剪輯中的波形圖,也就是我們的聲波形狀。有些時候我們會看見波形圖,有些時候會高,有些時候會低。

⑸ 錄音時候沒有出現波形,怎麼辦

可以嘗試以下3種方法進行設置:
1、建立一個音頻軌,不要MIDI軌,然後選擇一下錄音范圍,再然後點一下小鍵盤上的*型按鈕,就OK了;
2、去下個ASIO4ALL的虛擬音效卡驅動,ASIO是專業音效卡驅動,提供很低延遲,這樣可以完成設置;
3、或者,是用CE或AA這類不需要ASIO支持的錄音也可以。

⑹ 如何通過android對MP3解碼,從而得到MP3的波形拜託了各位 謝謝

MP3系統播放器是能直接播放的。去看看系統播放器的源碼應該就可以找到。 查看原帖>>

希望採納

⑺ 如何繪制Android的音樂播放器的波形

首先你的歌曲是要存在資料庫里的吧 第一種方法 新建一個我的最愛歌曲的表 然後表裡存歌名,歌曲地址,還有各種其他歌曲的參數,看你的歌都有那些參數了 然後在播放列表中實現一個長點擊事件,彈出一個菜單或者直接操作都行 然後把歌曲的各種信息存到表裡就行了 我的最愛就直接是這張表就行了 第二種方法 在你的歌曲表中新加一個bool列 然後通過這個列來表示你的歌曲是否在我的最愛中 當你想要打開我的最愛時就檢測這個屬性就行了 是就在 不是就不再

⑻ android錄音 振幅是多少

有這樣的一個例子,測試測試看?希望可以幫到你。 import android.media.AudioFormat; import android.media.AudioRecord; import android.media.MediaRecorder; import android.util.Log; public class RecordThread extends Thread { private AudioRecord ar; private int bs; private static int SAMPLE_RATE_IN_HZ = 8000; private boolean isRun = false; public RecordThread() { super(); bs = AudioRecord.getMinBufferSize(SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT); ar = new AudioRecord(MediaRecorder.AudioSource.MIC, SAMPLE_RATE_IN_HZ, AudioFormat.CHANNEL_CONFIGURATION_MONO, AudioFormat.ENCODING_PCM_16BIT, bs); } public void run() { super.run(); ar.startRecording(); // 用於讀取的 buffer byte[] buffer = new byte[bs]; isRun = true; while (isRun) { int r = ar.read(buffer, 0, bs); int v = 0; // 將 buffer 內容取出,進行平方和運算 for (int i = 0; i < buffer.length; i++) { // 這里沒有做運算的優化,為了更加清晰的展示代碼 v += buffer[i] * buffer[i]; } // 平方和除以數據總長度,得到音量大小。可以獲取白雜訊值,然後對實際采樣進行標准化。 // 如果想利用這個數值進行操作,建議用 sendMessage 將其拋出,在 Handler 里進行處理。 Log.d("spl", String.valueOf(v / (float) r)); } ar.stop(); } public void pause() { // 在調用本線程的 Activity 的 onPause 里調用,以便 Activity 暫停時釋放麥克風 isRun = false; } public void start() { // 在調用本線程的 Activity 的 onResume 里調用,以便 Activity 恢復後繼續獲取麥克風輸入音量 if (!isRun) { super.start(); } } }

熱點內容
win7關閉文件夾聲音了 發布:2022-07-03 19:45:37 瀏覽:179
word加密演算法 發布:2022-07-03 19:45:09 瀏覽:526
python語音合成 發布:2022-07-03 19:42:31 瀏覽:730
什麼垃圾伺服器最好用 發布:2022-07-03 19:40:45 瀏覽:393
皇姑編程 發布:2022-07-03 19:39:32 瀏覽:46
車配置高低用哪個軟體 發布:2022-07-03 19:37:41 瀏覽:811
java類設計 發布:2022-07-03 19:36:33 瀏覽:723
c語言嵌入匯編 發布:2022-07-03 19:35:32 瀏覽:809
陳道明訪問 發布:2022-07-03 19:33:09 瀏覽:465
瓶頸演算法 發布:2022-07-03 19:32:46 瀏覽:310