好,源码贴出(看好了):
视图界面:
- package com.example.Code_Test;
-
- import android.app.Activity;
- import android.graphics.Color;
- import android.media.AudioManager;
- import android.media.MediaPlayer;
- import android.media.audiofx.Equalizer;
- import android.media.audiofx.Visualizer;
- import android.os.Bundle;
- import android.view.*;
- import android.widget.*;
-
- public class MyActivity extends Activity {
-
- private static final float VISUALIZER_HEIGHT_DIP = 100f;//频谱View高度
-
- private MediaPlayer mMediaPlayer;//音频
- private Visualizer mVisualizer;//频谱器
- private Equalizer mEqualizer; //均衡器
-
- private LinearLayout mLayout;//代码布局
- VisualizerView mBaseVisualizerView;
-
- ImageButton play;
-
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
-
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏
- this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//去掉信息栏
-
- setVolumeControlStream(AudioManager.STREAM_MUSIC);//设置音频流 - STREAM_MUSIC:音乐回放即媒体音量
-
-
- mLayout = new LinearLayout(this);//代码创建布局
- mLayout.setOrientation(LinearLayout.VERTICAL);//设置为线性布局-上下排列
- mLayout.setBackgroundResource(R.drawable.ac88o);//设置界面背景
- mLayout.setGravity(Gravity.CENTER);
- setContentView(mLayout);//将布局添加到 Activity
-
- mMediaPlayer = MediaPlayer.create(this, R.raw.aaaass);//实例化 MediaPlayer 并添加音频
-
- setupVisualizerFxAndUi();//添加频谱到界面
- setupEqualizeFxAndUi();//添加均衡器到界面
- setupPlayButton();//添加按钮到界面
-
-
- mVisualizer.setEnabled(true);//false 则不显示
- mMediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
-
- @Override
- public void onCompletion(MediaPlayer mp) {
- }
- });
-
- mMediaPlayer.start();//开始播放
- mMediaPlayer.setLooping(true);//循环播放
-
- }
-
- /**
- * 通过mMediaPlayer返回的AudioSessionId创建一个优先级为0均衡器对象 并且通过频谱生成相应的UI和对应的事件
- */
- private void setupEqualizeFxAndUi() {
-
- TextView kongge = new TextView(this);
- kongge.setText("");
- kongge.setTextSize(10);
- mLayout.addView(kongge);
-
- mEqualizer = new Equalizer(0, mMediaPlayer.getAudioSessionId());