熟练使用J2ME在实际开发中的可选包MMAPI |
| 作者:未知 来源:J2ME开发网 发布时间:2005-7-29 9:21:43 |
|
了解J2ME在实际开发中的可选包MMAPI一文向读者介绍了MMAPI的基本知识,掌握MMAPI的灵活性应该是重点。本文将讲述如何在实际开发中使用MMAPI。 本文的目的是为读者提供处理不同情况的代码,您可以参考MMAPI DOC。 播放单音 try { Manager.playTone(ToneControl.C4, 5000 /* millisec */, 100 /* max vol */); } catch (MediaException e) { } 简单媒体重放功能实现: try { Player p = Manager.createPlayer ("http://webserver/music.mp3"); p.setLoopCount(5); p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 详细重放控制: static final long SECS_TO_MICROSECS = 1000000L; Player p; VolumeControl vc; try { p = Manager.createPlayer ("http://webserver/music.mp3"); p.realize(); // Set a listener. p.addPlayerListener(new Listener()); // Grab volume control for the player. // Set Volume to max. vc = (VolumeControl)p.getControl ("VolumeControl"); if (vc != null) vc.setLevel(100); // Set a start time. p.setMediaTime(5 * SECS_TO_MICROSECS); // Guarantee that the player can start with the smallest latency. p.prefetch(); // Non-blocking start p.start(); } catch (IOException ioe) { } catch (MediaException me) { } class Listener implements PlayerListener { public void playerUpdate(Player p, String event, Object eventData) { if (event == END_OF_MEDIA || event == STOP_AT_TIME) { System.out.println ("Done processing"); try { p.setMediaTime (5 * SECS_TO_MICROSECS); p.start(); } catch (MediaException me) { } break; } } } 实现MIDI重放控制: Player p; TempoControl tc; try { p = Manager.createPlayer ("http://webserver/tune.mid"); p.realize(); // Grab the tempo control. tc = (TempoControl)p.getControl ("TempoControl"); tc.setTempo(120000); // 120 beats/min p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 视频重放功能实现: Player p; VideoControl vc; try { p = Manager.createPlayer ("http://webserver/movie.mpg"); p.realize(); // Grab the video control and set it to the current display. vc = (VideoControl)p.getControl ("VideoControl"); if (vc != null) { Form form = new Form("video"); form.append ((Item)vc.initDisplayMode (vc.USE_GUI_PRIMITIVE, null)); Display.getDisplay(midlet) .setCurrent(form); } p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 播放RMS内存储的数据: RecordStore rs; int recordID; : // code to set up the record store. try { InputStream is = new ByteArrayInputStream (rs.getRecord(recordID)); Player p = Manager.createPlayer (is, "audio/X-wav"); p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 播放Jar文件中存储的媒体 /** Notice that in MIDP 2.0, the wav format is mandatory only */ /** in the case that the device supports sampled audio. */ try { InputStream is = getClass().getResourceAsStream ("audio.wav"); Player p = Manager.createPlayer (is, "audio/X-wav"); p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 不同Player的同步 Player p1, p2; try { p1 = Manager.createPlayer ("http://webserver/tune.mid"); p1.realize(); p2 = Manager.createPlayer ("http://webserver/movie.mpg"); p2.realize(); p2.setTimeBase(p1.getTimeBase()); p1.prefetch(); p2.prefetch(); p1.start(); p2.start(); } catch (IOException ioe) { } catch (MediaException me) { } 产生单音序列 byte tempo = 30; // set tempo to 120 bpm byte d = 8; // eighth-note byte C4 = ToneControl.C4; byte D4 = (byte)(C4 + 2); // a whole step byte E4 = (byte)(C4 + 4); // a major third byte G4 = (byte)(C4 + 7); // a fifth byte rest = ToneControl.SILENCE; // rest byte[] mySequence = { ToneControl.VERSION, 1, // version 1 ToneControl.TEMPO, tempo, // set tempo ToneControl.BLOCK_START, 0, // start define "A" section E4,d, D4,d, C4,d, E4,d, // content of "A" section E4,d, E4,d, E4,d, rest,d, ToneControl.BLOCK_END, 0, // end define "A" section ToneControl.PLAY_BLOCK, 0, // play "A" section D4,d, D4,d, D4,d, rest,d, // play "B" section E4,d, G4,d, G4,d, rest,d, ToneControl.PLAY_BLOCK, 0, // repeat "A" section D4,d, D4,d, E4,d, D4,d, C4,d // play "C" section }; try{ Player p = Manager.createPlayer (Manager.TONE_DEVICE_LOCATOR); p.realize(); ToneControl c = (ToneControl) p.getControl("ToneControl"); c.setSequence(mySequence); p.start(); } catch (IOException ioe) { } catch (MediaException me) { } 语音捕获 |
| [] [返回上一页] [打 印] |
|
文章评论 |
