<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FJ2ME%2FAudio_Player</id>
		<title>Java Tutorial/J2ME/Audio Player - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FJ2ME%2FAudio_Player"/>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/J2ME/Audio_Player&amp;action=history"/>
		<updated>2026-04-07T17:02:42Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/J2ME/Audio_Player&amp;diff=4087&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/J2ME/Audio_Player&amp;diff=4087&amp;oldid=prev"/>
				<updated>2010-06-01T04:58:07Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 04:58, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://jexp.ru/index.php?title=Java_Tutorial/J2ME/Audio_Player&amp;diff=4086&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://jexp.ru/index.php?title=Java_Tutorial/J2ME/Audio_Player&amp;diff=4086&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:27Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Audio Player Demo ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.Form;&lt;br /&gt;
import javax.microedition.lcdui.Gauge;&lt;br /&gt;
import javax.microedition.lcdui.Item;&lt;br /&gt;
import javax.microedition.lcdui.ItemStateListener;&lt;br /&gt;
import javax.microedition.lcdui.List;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.media.control.VolumeControl;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
class AudioPlayerCanvas implements ItemStateListener {&lt;br /&gt;
  private AudioPlayer parent;&lt;br /&gt;
  private Form form = new Form(&amp;quot;&amp;quot;);&lt;br /&gt;
  private Gauge gauge = new Gauge(&amp;quot;Volume: 50&amp;quot;, true, 100, 50);&lt;br /&gt;
  private VolumeControl volume;&lt;br /&gt;
  private Player player;&lt;br /&gt;
  private boolean paused = false;&lt;br /&gt;
  public AudioPlayerCanvas(AudioPlayer parent) {&lt;br /&gt;
    this.parent = parent;&lt;br /&gt;
    form.append(gauge);&lt;br /&gt;
    form.addCommand(parent.exitCommand);&lt;br /&gt;
    form.addCommand(parent.backCommand);&lt;br /&gt;
    form.setCommandListener(parent);&lt;br /&gt;
    form.setItemStateListener(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void playMedia(String locator) {&lt;br /&gt;
    try {&lt;br /&gt;
      player = Manager.createPlayer(getClass().getResourceAsStream(locator), &amp;quot;audio/x-wav&amp;quot;);&lt;br /&gt;
      player.realize();&lt;br /&gt;
      volume = (VolumeControl) player.getControl(&amp;quot;VolumeControl&amp;quot;);&lt;br /&gt;
      volume.setLevel(50);&lt;br /&gt;
      gauge.setValue(volume.getLevel());&lt;br /&gt;
      gauge.setLabel(&amp;quot;Volume: &amp;quot; + volume.getLevel());&lt;br /&gt;
      player.setLoopCount(2);&lt;br /&gt;
      player.start();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseMedia() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      try {&lt;br /&gt;
        player.stop();&lt;br /&gt;
        paused = true;&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void restartMedia() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      try {&lt;br /&gt;
        player.start();&lt;br /&gt;
        paused = false;&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isPlayerPaused() {&lt;br /&gt;
    return paused;&lt;br /&gt;
  }&lt;br /&gt;
  public Form getForm() {&lt;br /&gt;
    return this.form;&lt;br /&gt;
  }&lt;br /&gt;
  public void itemStateChanged(Item item) {&lt;br /&gt;
    volume.setLevel(gauge.getValue());&lt;br /&gt;
    gauge.setLabel(&amp;quot;Volume: &amp;quot; + volume.getLevel());&lt;br /&gt;
  }&lt;br /&gt;
  public void cleanUp() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      player.close();&lt;br /&gt;
      player = null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class J2MEAudioPlayer extends MIDlet implements CommandListener {&lt;br /&gt;
  private String[] audioDisplayList = { &amp;quot;y.wav&amp;quot;, &amp;quot;e.wav&amp;quot;, &amp;quot;r.wav&amp;quot; };&lt;br /&gt;
  private String[] audioList = { &amp;quot;/y.wav&amp;quot;, &amp;quot;/e.wav&amp;quot;, &amp;quot;/r.wav&amp;quot; };&lt;br /&gt;
  protected Display display;&lt;br /&gt;
  private AudioPlayerCanvas canvas;&lt;br /&gt;
  private List list = new List(&amp;quot;Pick an Audio file&amp;quot;, List.IMPLICIT, audioDisplayList, null);&lt;br /&gt;
  protected Command exitCommand = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
  protected Command backCommand= new Command(&amp;quot;Back&amp;quot;, Command.BACK, 1);&lt;br /&gt;
  public J2MEAudioPlayer() {&lt;br /&gt;
    list.addCommand(exitCommand);&lt;br /&gt;
    list.setCommandListener(this);&lt;br /&gt;
    canvas = new AudioPlayerCanvas(this);&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    if (canvas.isPlayerPaused()) {&lt;br /&gt;
      canvas.restartMedia();&lt;br /&gt;
      display.setCurrent(canvas.getForm());&lt;br /&gt;
    } else {&lt;br /&gt;
      display.setCurrent(list);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
    canvas.pauseMedia();&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
    canvas.cleanUp();&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command command, Displayable disp) {&lt;br /&gt;
    if (command == exitCommand) {&lt;br /&gt;
      canvas.cleanUp(); &lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
      return;&lt;br /&gt;
    } else if (command == backCommand) { &lt;br /&gt;
      canvas.cleanUp();&lt;br /&gt;
      display.setCurrent(list);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (disp == list) {&lt;br /&gt;
      canvas.playMedia(audioList[list.getSelectedIndex()]);&lt;br /&gt;
      display.setCurrent(canvas.getForm());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Cached Audio Player ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.util.Enumeration;&lt;br /&gt;
import java.util.Hashtable;&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.Form;&lt;br /&gt;
import javax.microedition.lcdui.Gauge;&lt;br /&gt;
import javax.microedition.lcdui.Item;&lt;br /&gt;
import javax.microedition.lcdui.ItemStateListener;&lt;br /&gt;
import javax.microedition.lcdui.List;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.media.control.VolumeControl;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
class CachedAudioPlayerCanvas implements ItemStateListener {&lt;br /&gt;
  private CachingAudioPlayer parent;&lt;br /&gt;
  private Form form = new Form(&amp;quot;&amp;quot;);&lt;br /&gt;
  private Gauge gauge = new Gauge(&amp;quot;Volume: 50&amp;quot;, true, 100, 50);&lt;br /&gt;
  private VolumeControl volume;&lt;br /&gt;
  private Player player;&lt;br /&gt;
  private boolean paused = false;&lt;br /&gt;
  private Hashtable players = new Hashtable();&lt;br /&gt;
  public CachedAudioPlayerCanvas(CachingAudioPlayer parent) {&lt;br /&gt;
    this.parent = parent;&lt;br /&gt;
    form.append(gauge);&lt;br /&gt;
    form.addCommand(parent.exitCommand);&lt;br /&gt;
    form.addCommand(parent.backCommand);&lt;br /&gt;
    form.setCommandListener(parent);&lt;br /&gt;
    form.setItemStateListener(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void playMedia(String locator) {&lt;br /&gt;
    try {&lt;br /&gt;
      player = (Player) players.get(locator);&lt;br /&gt;
      if (player == null) {&lt;br /&gt;
        player = Manager.createPlayer(getClass().getResourceAsStream(locator), &amp;quot;audio/x-wav&amp;quot;);&lt;br /&gt;
        player.prefetch();&lt;br /&gt;
        players.put(locator, player);&lt;br /&gt;
      }&lt;br /&gt;
      volume = (VolumeControl) player.getControl(&amp;quot;VolumeControl&amp;quot;);&lt;br /&gt;
      volume.setLevel(50);&lt;br /&gt;
      gauge.setValue(volume.getLevel());&lt;br /&gt;
      gauge.setLabel(&amp;quot;Volume: &amp;quot; + volume.getLevel());&lt;br /&gt;
      player.setLoopCount(2);&lt;br /&gt;
      player.start();&lt;br /&gt;
      form.setTitle(&amp;quot;Playing &amp;quot; + locator);&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseMedia() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      try {&lt;br /&gt;
        player.stop();&lt;br /&gt;
        paused = true;&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void restartMedia() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      try {&lt;br /&gt;
        player.start();&lt;br /&gt;
        paused = false;&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public boolean isPlayerPaused() {&lt;br /&gt;
    return paused;&lt;br /&gt;
  }&lt;br /&gt;
  public Form getForm() {&lt;br /&gt;
    return this.form;&lt;br /&gt;
  }&lt;br /&gt;
  public void itemStateChanged(Item item) {&lt;br /&gt;
    volume.setLevel(gauge.getValue());&lt;br /&gt;
    gauge.setLabel(&amp;quot;Volume: &amp;quot; + volume.getLevel());&lt;br /&gt;
  }&lt;br /&gt;
  public void cleanUp() {&lt;br /&gt;
    if (player != null) {&lt;br /&gt;
      try {&lt;br /&gt;
        player.setMediaTime(0);&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
      }&lt;br /&gt;
      player.deallocate();&lt;br /&gt;
      player = null;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void closeAll() {&lt;br /&gt;
    for (Enumeration e = players.elements(); e.hasMoreElements();) {&lt;br /&gt;
      Player p = (Player) e.nextElement();&lt;br /&gt;
      p.close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class J2MECachingAudioPlayer extends MIDlet implements CommandListener {&lt;br /&gt;
  private String[] audioDisplayList = { &amp;quot;B&amp;quot;, &amp;quot;A&amp;quot;, &amp;quot;L&amp;quot; };&lt;br /&gt;
  private String[] audioList = { &amp;quot;/b.wav&amp;quot;, &amp;quot;/a.wav&amp;quot;, &amp;quot;/l.wav&amp;quot; };&lt;br /&gt;
  protected Display display;&lt;br /&gt;
  private CachedAudioPlayerCanvas canvas;&lt;br /&gt;
  private List list = new List(&amp;quot;Pick an Audio file&amp;quot;, List.IMPLICIT, audioDisplayList, null);&lt;br /&gt;
  protected Command exitCommand = new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1);&lt;br /&gt;
  protected Command backCommand = new Command(&amp;quot;Back&amp;quot;, Command.BACK, 1);&lt;br /&gt;
  public J2MECachingAudioPlayer() {&lt;br /&gt;
    list.addCommand(exitCommand);&lt;br /&gt;
    list.setCommandListener(this);&lt;br /&gt;
    canvas = new CachedAudioPlayerCanvas(this);&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    if (canvas.isPlayerPaused()) {&lt;br /&gt;
      canvas.restartMedia();&lt;br /&gt;
      display.setCurrent(canvas.getForm());&lt;br /&gt;
    } else {&lt;br /&gt;
      display.setCurrent(list);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
    canvas.pauseMedia();&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
    canvas.closeAll();&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command command, Displayable disp) {&lt;br /&gt;
    if (command == exitCommand) {&lt;br /&gt;
      canvas.closeAll(); &lt;br /&gt;
      notifyDestroyed(); &lt;br /&gt;
      return;&lt;br /&gt;
    } else if (command == backCommand) {&lt;br /&gt;
      canvas.cleanUp();&lt;br /&gt;
      display.setCurrent(list);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  implements PlayerListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.lcdui.StringItem;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.media.PlayerListener;&lt;br /&gt;
import javax.microedition.media.control.VolumeControl;&lt;br /&gt;
public class EventHandler implements PlayerListener {&lt;br /&gt;
  private StringItem item;&lt;br /&gt;
  public EventHandler(StringItem item) {&lt;br /&gt;
    this.item = item;&lt;br /&gt;
  }&lt;br /&gt;
  public void playerUpdate(Player player, String event, Object eventData) {&lt;br /&gt;
    if (event == (PlayerListener.VOLUME_CHANGED)) {&lt;br /&gt;
      VolumeControl vc = (VolumeControl) eventData;&lt;br /&gt;
      updateDisplay(&amp;quot;Volume Changed to: &amp;quot; + vc.getLevel());&lt;br /&gt;
      if (vc.getLevel() &amp;gt; 60) {&lt;br /&gt;
        updateDisplay(&amp;quot;Volume higher than 60 is too loud&amp;quot;);&lt;br /&gt;
        vc.setLevel(60);&lt;br /&gt;
      }&lt;br /&gt;
    } else if (event == (PlayerListener.STOPPED)) {&lt;br /&gt;
      updateDisplay(&amp;quot;Player paused at: &amp;quot; + (Long) eventData);&lt;br /&gt;
    } else if (event == (PlayerListener.STARTED)) {&lt;br /&gt;
      updateDisplay(&amp;quot;Player started at: &amp;quot; + (Long) eventData);&lt;br /&gt;
    } else if (event == (PlayerListener.END_OF_MEDIA)) {&lt;br /&gt;
      updateDisplay(&amp;quot;Player reached end of loop.&amp;quot;);&lt;br /&gt;
    } else if (event == (PlayerListener.CLOSED)) {&lt;br /&gt;
      updateDisplay(&amp;quot;Player closed.&amp;quot;);&lt;br /&gt;
    } else if (event == (PlayerListener.ERROR)) {&lt;br /&gt;
      updateDisplay(&amp;quot;Error Message: &amp;quot; + (String) eventData);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void updateDisplay(String text) {&lt;br /&gt;
    item.setText(text);&lt;br /&gt;
    System.err.println(text);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Load WAV file from a web site ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.List;&lt;br /&gt;
import javax.microedition.lcdui.StringItem;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class J2MENetworkTest extends MIDlet implements CommandListener {&lt;br /&gt;
  private List list = new List(&amp;quot;Press Play&amp;quot;, List.IMPLICIT);&lt;br /&gt;
  private Display display;&lt;br /&gt;
  public J2MENetworkTest() {&lt;br /&gt;
    list.addCommand(new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1));&lt;br /&gt;
    list.addCommand(new Command(&amp;quot;Play&amp;quot;, Command.SCREEN, 1));&lt;br /&gt;
    list.setCommandListener(this);&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    display.setCurrent(list);&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command cmd, Displayable disp) {&lt;br /&gt;
    if (cmd.getLabel().equals(&amp;quot;Exit&amp;quot;)) {&lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
    } else {&lt;br /&gt;
      try {&lt;br /&gt;
        Player player = Manager.createPlayer(&amp;quot;http://www.yoursite.ru/s.wav&amp;quot;);&lt;br /&gt;
        player.start();&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
        System.err.println(e);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Network Player Manager ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.lcdui.rumand;&lt;br /&gt;
import javax.microedition.lcdui.rumandListener;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Displayable;&lt;br /&gt;
import javax.microedition.lcdui.Form;&lt;br /&gt;
import javax.microedition.lcdui.List;&lt;br /&gt;
import javax.microedition.lcdui.StringItem;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
class ThreadedMIDlet extends MIDlet implements CommandListener {&lt;br /&gt;
  private List list = new List(&amp;quot;Press Play&amp;quot;, List.IMPLICIT);&lt;br /&gt;
  private Display display;&lt;br /&gt;
  private NetworkPlayerManager mgr;&lt;br /&gt;
  private Command cancel = new Command(&amp;quot;Cancel&amp;quot;, Command.CANCEL, 1);&lt;br /&gt;
  public ThreadedMIDlet() {&lt;br /&gt;
    list.addCommand(new Command(&amp;quot;Exit&amp;quot;, Command.EXIT, 1));&lt;br /&gt;
    list.addCommand(new Command(&amp;quot;Play&amp;quot;, Command.SCREEN, 1));&lt;br /&gt;
    list.setCommandListener(this);&lt;br /&gt;
    display = Display.getDisplay(this);&lt;br /&gt;
  }&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    display.setCurrent(list);&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
  public void commandAction(Command cmd, Displayable disp) {&lt;br /&gt;
    if (cmd.getLabel().equals(&amp;quot;Exit&amp;quot;)) {&lt;br /&gt;
      notifyDestroyed();&lt;br /&gt;
    } else if (cmd.getLabel().equals(&amp;quot;Cancel&amp;quot;)) {&lt;br /&gt;
      mgr.cancel();&lt;br /&gt;
      display.setCurrent(list);&lt;br /&gt;
    } else {&lt;br /&gt;
      try {&lt;br /&gt;
        mgr = new NetworkPlayerManager(display, cancel, this);&lt;br /&gt;
        Thread runner = new Thread(mgr);&lt;br /&gt;
        runner.start();&lt;br /&gt;
      } catch (Exception e) {&lt;br /&gt;
        System.err.println(e);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
public class NetworkPlayerManager implements Runnable {&lt;br /&gt;
  private Display display;&lt;br /&gt;
  private Form form = new Form(&amp;quot;Network Player Manager&amp;quot;);&lt;br /&gt;
  private StringItem msg = new StringItem(&amp;quot;Please Wait ... &amp;quot;, null);&lt;br /&gt;
  private boolean cancel = false;&lt;br /&gt;
  private Player player = null;&lt;br /&gt;
  public NetworkPlayerManager(Display display, Command cancelCmd, ThreadedMIDlet parent) {&lt;br /&gt;
    this.display = display;&lt;br /&gt;
    form.append(msg);&lt;br /&gt;
    form.addCommand(cancelCmd);&lt;br /&gt;
    form.setCommandListener(parent);&lt;br /&gt;
  }&lt;br /&gt;
  public void run() {&lt;br /&gt;
    display.setCurrent(form);&lt;br /&gt;
    boolean connected = false;&lt;br /&gt;
    try {&lt;br /&gt;
      player = Manager.createPlayer(&amp;quot;http://www.yoursite.ru/s.wav&amp;quot;);&lt;br /&gt;
      player.realize();&lt;br /&gt;
      connected = true;&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      msg.setText(&amp;quot;Failed: &amp;quot; + e.getMessage());&lt;br /&gt;
      System.err.println(e);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    if (connected &amp;amp;&amp;amp; !cancel)&lt;br /&gt;
      msg.setText(&amp;quot;Connected. Starting playback...&amp;quot;);&lt;br /&gt;
    else {&lt;br /&gt;
      msg.setText(&amp;quot;Unable to connect.&amp;quot;);&lt;br /&gt;
      return;&lt;br /&gt;
    }&lt;br /&gt;
    try {&lt;br /&gt;
      player.start();&lt;br /&gt;
    } catch (Exception pe) {&lt;br /&gt;
      msg.setText(pe.getMessage());&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void cancel() {&lt;br /&gt;
    cancel = true;&lt;br /&gt;
    if (player != null)&lt;br /&gt;
      player.deallocate();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Player Event ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.lcdui.Display;&lt;br /&gt;
import javax.microedition.lcdui.Form;&lt;br /&gt;
import javax.microedition.lcdui.StringItem;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.media.PlayerListener;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class EchoEventsMIDlet extends MIDlet implements PlayerListener {&lt;br /&gt;
  private StringItem stringItem = new StringItem(&amp;quot;&amp;quot;, null);&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    try {&lt;br /&gt;
      Form form = new Form(&amp;quot;Player State&amp;quot;);&lt;br /&gt;
      form.append(stringItem);&lt;br /&gt;
      Display.getDisplay(this).setCurrent(form);&lt;br /&gt;
      Player player = Manager.createPlayer(getClass().getResourceAsStream(&amp;quot;/b.wav&amp;quot;), &amp;quot;audio/x-wav&amp;quot;);&lt;br /&gt;
      player.addPlayerListener(this);&lt;br /&gt;
      player.start();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
  public void playerUpdate(Player player, String event, Object eventData) {&lt;br /&gt;
    stringItem.setText(event);&lt;br /&gt;
    System.err.println(event);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Wav file player ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import javax.microedition.media.Manager;&lt;br /&gt;
import javax.microedition.media.Player;&lt;br /&gt;
import javax.microedition.midlet.MIDlet;&lt;br /&gt;
public class J2MESimplePlayer extends MIDlet {&lt;br /&gt;
  public void startApp() {&lt;br /&gt;
    try {&lt;br /&gt;
      Player player = Manager.createPlayer(getClass().getResourceAsStream(&amp;quot;/b.wav&amp;quot;), &amp;quot;audio/x-wav&amp;quot;);&lt;br /&gt;
      player.start();&lt;br /&gt;
    } catch (Exception e) {&lt;br /&gt;
      e.printStackTrace();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public void pauseApp() {&lt;br /&gt;
  }&lt;br /&gt;
  public void destroyApp(boolean unconditional) {&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>