draw Audio - Android Media

Android examples for Media:Audio

Description

draw Audio

Demo Code


//package com.java2s;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Path;

import android.widget.ImageView;

public class Main {
    public static void drawAudio(short[] track, Canvas canvas, Paint paint) {
        drawAudio(track, canvas, paint, audioRange(track));
    }//w  w  w .  j av a2 s. c om

    public static void drawAudio(short[] track, Canvas canvas, Paint paint,
            short range) {
        //range is needed to choose an appropriate vertical scale for the drawing
        if (range == 0)
            return;
        Path mPath = new Path();
        int height = canvas.getHeight();
        int width = canvas.getWidth();
        mPath.moveTo(0, canvas.getHeight() / 2);
        for (int i = 0; i < track.length; i++) {
            mPath.lineTo(width * i / track.length, track[i] * height
                    / range / 2 + height / 2);
        }
        mPath.moveTo(0, height / 2);
        canvas.drawPath(mPath, paint);
    }

    public static void drawAudio(short[] track, ImageView v, Paint paint) {
        Bitmap bmp = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
                Bitmap.Config.ARGB_8888);
        Canvas canvas = new Canvas(bmp);
        drawAudio(track, canvas, paint);
        v.setImageBitmap(bmp);
    }

    public static short audioRange(short[] track) { //Returns largest amplitude ("volume") of an audio track
        short range = 0;
        for (int i = 0; i < track.length; i++) {
            if (Math.abs(track[i]) > range)
                range = (short) Math.abs(track[i]);
        }
        return range;
    }
}

Related Tutorials