应用Nokia UI API处理声音问题[3]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

bsp;    4698
 Ring freq E4b          4978
 Ring freq E4           5274
 Ring freq F4           5588
 Ring freq G4b          5920
 Ring freq G4           6272
 Ring freq A5b          6644
 Ring freq A5           7040
 Ring freq B5b          7458
 Ring freq B5           7902
 Ring freq C5           8372
 Ring freq D5b          8870
 Ring freq D5           9396
 Ring freq E5b          9956
 Ring freq E5           10548
 Ring freq F5           11176
 Ring freq G5b          11840
 Ring freq G5           12544
 Ring freq A6b          13288


    下面我们编写一个小程序来讲述如何使用Nokia UI来处理声音问题,我们的目的是当用户按下按键的时候开始播放声音,当用户释放按键的时候停止播放,我们提供一个ToneCanvas类来显示用户按下的键,并通过TonePlayer类来播放适当频率的声音。

 

 

 

 

 

package com.j2medev.tone;

import javax.microedition.lcdui.Canvas;
import javax.microedition.lcdui.Graphics;

import com.nokia.mid.ui.FullCanvas;


public class TonesCanvas extends FullCanvas
{

    private TonesMIDlet midlet;

    private int pressNum;

    private int currentKey;

    private TonePlayer player = new TonePlayer();

    private static int freq[][] = { { 523, 554 }, { 587, 622 }, { 659, 659 },
            { 698, 740 }, { 784, 831 }, { 880, 932 }, { 988, 988 },
            { 1047, 1109 }, { 1175, 1245 }, { 1319, 1319 }, { 1397, 1480 } };

    public static final int NAT = 0;

    public static final int SHARP = 1;

    private int x = this.getWidth() / 2;

    private int y = this.getHeight() / 2;

    private boolean sharp = false;

    public TonesCanvas(TonesMIDlet midlet)
    {
        super();
        this.midlet = midlet;
        // TODO Auto-generated constructor stub
    }

    public void paint(Graphics g)
    {
        if (pressNum == -1)
        {
            return;
        }
        String note = (sharp == true) ? "#" : "";
        g.setColor(128, 255, 18);
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(124, 124, 0);

        g.drawString(pressNum + note, x, y, Graphics.LEFT | Graphics.TOP);

    }

    public void keyPressed(int keyCode)
    {
        if (keyCode == Canvas.KEY_POUND)
        {
            sharp = !sharp;

本文关键:应用Nokia UI API处理声音问题
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top