当前位置:首页 » 安卓系统 » android音乐频谱

android音乐频谱

发布时间: 2022-07-19 11:57:11

❶ 求助==怎么在android 锁屏界面实现音乐频谱图

Visualizer 类,这个类只在Android 2.3以上的API才支持。
首先实例化Visualizer,参数SessionId可以通过MediaPlayer的对象获得

[java] view plain
visualizer = new Visualizer(mPlayerInstance.getAudioSessionId());
接着设置需要转换的音乐内容长度,专业的说这就是采样,该采样值一般为2的指数倍,如64,128,256,512,1024。这里我设置了128,原因是长度越长,FFT算法运行时间更长。

[java] view plain

❷ 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);
}
}
}

❸ 安卓哪个播放器有频谱啊,别提天天动听。频谱要很精细的那种,像酷狗2010pc版那样的

一方面是软件,另一方面,还要硬件支持,硬件质量好才可以。
国产机器,华为和VIVO相对音频处理效果好一些。
还有,音频质量也很重要,建议酷狗音乐,QQ音乐,上面高质量音频资源丰富。

❹ 请问手机上怎么给视频添加音频频谱

下载一个美册,里面的可视化音频功能可以给视频添加音频频谱,可视化音乐效果非常多,主题非常多,圆形频谱和波形频谱都可以调整


❺ 有没有带音乐频谱的播放器软件,很酷的那种

我就知道一个,天天动听。手机的音乐播放器,我的手机是诺基亚E70,是翻盖全键盘手机,这款播放器可以将频谱波动全屏化。很炫哦!

❻ 哪个安卓音乐播放器是带频谱的,除了中子!

如果你是想看到频谱分析图像的话,可以去找一些铃声制作软件,或者有的机型有一个动态壁纸,也是可以显示当前频谱的。

❼ 求推荐安卓带频谱音乐播放器

天天动听有频谱的,不过要注意的是有的皮肤没有频谱,要找带频谱的皮肤才行

❽ 有没有做音乐频谱视频的安卓软件

安卓手机制作音乐频谱的视频我感觉美册可以的,可以尝试一下,美册的可视化音频功能
他的官效果是比较好的,导入音乐后,音频可以随着音乐的节奏跳动,直观好看,让音乐有立体感✌


❾ android频谱分析怎么做

Android 音乐频谱分析,把时域上连续的信号(波形)强度转换成离散的频域信号(频谱)。
目前该 软件,没有安卓版,主要是太复杂了,大型软件很少有安卓版的。实时频谱分析仪/音频可视化功能: - 128个高品质的频段20Hz到22kHz的] - 对数频率刻度,以符合人类感知 - 低延迟高响应性 - 的帧率看到平滑的频率和幅度的动作 - 高性能的本机代码中使用OpenGL ES 2.0的参考 - FFT窗口大小2048@43/58(用于ARMv7+)帧

❿ 有没有一款安卓版音乐播放器的频谱是流线分析。而不是柱形

你可在电脑上下载一个91手机助手,手机和电脑连接的时候打开91手机助手,在上边搜你要的音乐软件都有的,呵呵!

给你找到个“影音Flash播放器” 你看看 呵呵

热点内容
起床的战争玩什么服务器 发布:2025-01-23 21:03:06 浏览:140
企业级安卓手机防毒软件哪个好 发布:2025-01-23 20:59:28 浏览:242
数据库精美 发布:2025-01-23 20:37:05 浏览:234
mysql怎么编译驱动 发布:2025-01-23 20:35:15 浏览:466
修改数据库的语句是 发布:2025-01-23 20:26:17 浏览:761
linuxping域名 发布:2025-01-23 20:24:34 浏览:478
神经网络算法应用 发布:2025-01-23 20:18:36 浏览:218
冒险岛按键精灵脚本下载 发布:2025-01-23 19:46:50 浏览:751
安卓访问共享需要开通什么服务 发布:2025-01-23 19:43:01 浏览:518
vs2015c语言调试 发布:2025-01-23 19:42:47 浏览:142