/*
* 这个demon演示了在进行音频播放时如何使用Visualizer和Equalizer类为音频定制
* 示波器和均衡器。
*/
public class MainActivity extends Activity {
// 定义示波器界面的高度(单位为dip)
private static final float VISUALIZER_HEIGHT_DIP = 50f;
// 定义一个媒体播放器
private MediaPlayer mMediaPlay;
// 定义示波器
private Visualizer mVisualizer;
// 定义均衡器
private Equalizer mEqualizer;
private LinearLayout mLinearLayout;
// 定义示波器的显示界面(这是一个自定义的内部类)
private VisualizerView mVisualizerView;
private TextView mStatusTextView;
private class VisualizerView extends View {
// 定义一个字节数组用于接收Visualizer在采样时获取到的字节数据
private byte[] mBytes;
// 定义一个浮点数组,用于表示每段示波线段的两个端点
private float[] mPoints;
// 定义示波器的显示区域
private Rect mRect = new Rect();
private Paint mPaint;
public VisualizerView(Context context) {
super(context);
// 清空mBytes该变量由Visualizer在采样后赋值,所以要确保在未被赋值前后状态为空
mBytes = null;
mPaint = new Paint();
mPaint.setAntiAlias(true);
mPaint.setStrokeWidth(1f);
mPaint.setColor(Color.rgb(0, 128, 255));
}
// 更新数据,为mBytes赋值
public void updateVisualizer(byte[] bytes) {
mBytes = bytes;
invalidate();
}
@Override
protected
Android Api Demos登顶之路(九十五)Media-->AudioFx
最新推荐文章于 2024-10-06 15:29:59 发布