<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Andi Sunyoto Personal Blog &#187; Mobile</title>
	<atom:link href="http://www.andisun.com/tag/mobile/feed" rel="self" type="application/rss+xml" />
	<link>http://www.andisun.com</link>
	<description>andi&#124;blog</description>
	<lastBuildDate>Wed, 28 Dec 2011 12:24:37 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>J2ME: Pengaksesan File Multimedia Pada Mobile Device dengan MMAPI</title>
		<link>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi-2</link>
		<comments>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi-2#comments</comments>
		<pubDate>Thu, 03 Sep 2009 02:24:20 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[Device]]></category>
		<category><![CDATA[Interface]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[MMAPI]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Player]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=397</guid>
		<description><![CDATA[By: Andi Sunyoto Abstraksi Mobile Media API (MMAPI) is an optional package yang mendukung aplikasi multimedia di peralatan J2ME. Ini adalah standar Java yang ditetapkan oleh Java Community Process (JCP) dalam JSR 135. Standar ini didesain fleksibel jalan di beberapa protokol dan format; contoh pengimplementasiannya tidak harus dengan protokol HTTP atau Real-Time Transport Protokol (RTP) [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">By: Andi Sunyoto</p>
<p align="center">Abstraksi</p>
<p align="center"><em>Mobile Media API (MMAPI)</em> is an <em>optional package</em> yang mendukung aplikasi multimedia di peralatan J2ME. Ini adalah standar Java yang ditetapkan oleh <em>Java Community Process (JCP)</em> dalam JSR 135. Standar ini didesain fleksibel jalan di beberapa protokol dan format; contoh pengimplementasiannya tidak harus dengan protokol HTTP atau <em>Real-Time Transport Protokol (RTP) </em>saja, atau media dengan format MP3. MIDI atau MPEG-4 saja.</p>
<h2>Pengantar MMAPI</h2>
<p>Artikel ini menyediakan suatu pengenalan dari arsitektur MMAPI dan API, yang dilengkapi suatu contoh kode yang menunjukkan bagaimana MMAPI dapat digunakan untuk membangun aplikasi-aplikasi multimedia <em>Wireless Java</em>.</p>
<p>MMAPI sudah dirancang untuk berjalan di setiap virtual machine berbasis J2ME, termasuk CDC dan CLDC.</p>
<p>Pengembang MMAPI dirancang dengan fitur sebagai berikut:</p>
<ul>
<li>Mendukung untuk <em>Tone Generation, Playback, and Recording of Time-Based Media</em>: paket ini mendukung setiap isi audio dan video yang berbasis waktu (time-based).</li>
<li><em>Small Footprint</em>:<em> </em>MMAPI bekerja pada batas-batas memori yang tegas dari alat-alat CLDC.</li>
<li><em>Protocol- and Content-Agnostic</em>:<em> </em>API tidak dibiaskan ke tipe atau protokol yang spesifik.</li>
<li><em>Subsettable: </em>pengembang dapat mendukung tipe tertentu.</li>
<li><em>Extensible</em>: Fitur baru dapat ditambahkan dengan mudah tanpa menghilangkan kemampuan sistem yang sebelumnya. Lebih penting lagi, format-format tambahan dapat dengan mudah didukung, dikbuat framework dan ditempatkan untuk kontrol tambahan.</li>
<li><em>Options for Implementers</em>: API menawarkan fitur untuk tujuan-tujuan yang tertentu. API didesain dan dirancang untuk mengizinkan developer meninggalkan beberapa fitur jika mereka tidak bisa didukung.</li>
</ul>
<h2>Multimedia Processing</h2>
<p>Ada dua bagian untuk mengolah multimedia:</p>
<ul>
<li><em>Protocol Handling: </em>membaca data dari suatu sumber seperti sebuah file atau suatu streaming server ke dalam sistem media-processing.</li>
<li><em>Content Handling</em>: menguraikan (parsing) atau decoding data dan merendernya menjadi sebuah keluaran seperti spiker audio atau layar video.</li>
</ul>
<p>Agar dapat memfasilitasi operasi di atas, API menyediakan dua tipe obyek high-level:</p>
<ul>
<li>DataSource mengencapsulasi penanganan protokol dengan penyembunyian detail bagaimana data itu dibaca dari sumbernya. Method obyek mempunyai berguna yang memungkinkan obyek Player menangani  isi.</li>
<li>Player membaca data dari DataSource, memprosesnya merendernya untuk ditampilkan di piranti. Obyek ini menyediakan metoda untuk mengendalikan media untuk playback, termasuk metoda untuk mengendalikan tipe tertentu mengakses fitur tipe media tertentu..</li>
</ul>
<p>MMAPI menetapkan obyek ketiga, sebuah mekanisme yang dikenal sebagai Manager yang memungkinkan aplikasi membuat Players dari DataSources, dan dari InputStreams.</p>
<p align="center">
<p align="center">
<div id="attachment_398" class="wp-caption aligncenter" style="width: 383px"><img class="size-full wp-image-398" title="arsitektur_mmapi_j2me" src="http://www.andisun.com/wp-content/uploads/2009/09/arsitektur_mmapi_j2me.png" alt="Arsitektur MMAPI" width="373" height="235" /><p class="wp-caption-text">Arsitektur MMAPI</p></div>
<p><span id="more-397"></span></p>
<p>Obyek Manager menyediakan method createPlayer(), yang merupakan level tertinggi API untuk memasukkan input. Berikut contoh penggunaannya:</p>
<pre>...
Player player = Manager.createPlayer(String url);
...</pre>
<p>Keterangan:</p>
<ul>
<li>url : berisi protokol dan isi url</li>
<li>format pengisian url &lt;protokol&gt;:&lt;isi lokasi&gt;</li>
</ul>
<p>Aplikasi menggunakan method yang dikembalikan Player untuk mengontrol data yang didapatkan dan playback media yang berdasarkan waktu <em>(time-based)</em>.</p>
<p><em>Life-cycle Player</em> berisi lima keadaan: UNREALIZED, REALIZED, PREFETCHED, STARTED, dan CLOSED. Ke enam method menghasilkan transisi keadaan:</p>
<pre>realize()
prefetch()
start()
stop()
deallocate()
close()</pre>
<p>Ketika sebuah player dibuat, berubah ke keadaan UNREALIZED. Kemudian memanggil realize() pindah ke keadaan REALIZED dan menganalisa informasi. Memanggil prefetch() keadaan pindah ke PREFETCHED, menetapkan koneksi jaringan untuk streaming data, dan melakukan tugas-tugas inisialisasi lainnya. Memangil start() menyebabkan transisi ke keadaan STARTED, dimana player dapat memproses data. Ketika selesai memproses data (sampai ke bagian terakhir data), akan mengembalikan keadaan PREFETCHED. Memanggil close() meyebabkan player pindah ke status CLOSED.</p>
<p>Sebuah Player menyediakan kendali yang dikhususkan untuk jenis tertentu dari media yang memproses. Aplikasi menggunakan getControl() untuk memperoleh suatu kendali, atau getControls() untuk mendapat satu berpakaian tentang mereka. Sebagai satu contoh, jika suatu pemain untuk MIDI menggunakan getControl() itu, maka akan mendapat MIDIControl.</p>
<p>MMAPI dikemas dalam tiga paket:</p>
<ul>
<li>javax.microedition.media menyediakan beberapa interface, sebuah exception, dan class Manager, merupakan titik akses untuk memperoleh sumber daya, seperti Players untuk pengolahan multimedia.</li>
<li>javax.microedition.media.control menetapkan tipe control spesifik yang dapat digunakan dengan sebuah Player: VolumeControl, VideoControl, dan lainnya.</li>
<li>javax.microedition.media.protocol menetapkan protokol untuk menangani control yang berbeda.</li>
</ul>
<p>Class, interface dan exception yang ada dipaket ini berisi dapat dilihat pada tabel berikut:</p>
<p style="text-align: left;">Tabel 1 : Class MMAPI</p>
<table style="width: 589px; height: 258px;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="243" valign="top"><strong>Package</strong></td>
<td width="141" valign="top"><strong>Class</strong></td>
<td width="207" valign="top"><strong>Keterangan</strong></td>
</tr>
<tr>
<td width="243" valign="top">javax.microedition.media</td>
<td width="141" valign="top">Manager</td>
<td width="207" valign="top">Akses untuk   memperoleh sumber daya pada system-dependent, seperti Player   untuk mengolah multimedia.</td>
</tr>
<tr>
<td width="243" valign="top">javax.microedition.media.protocol</td>
<td width="141" valign="top">ContentDescriptor</td>
<td width="207" valign="top">Mendeskripsikan   tipe isi dari media.</td>
</tr>
<tr>
<td width="243" valign="top">javax.microedition.media.protocol</td>
<td width="141" valign="top">DataSource</td>
<td width="207" valign="top">Menunjukkan bentuk abstraksi untuk protokol media   menangani penyembunyian detail bagaimana data itu dibaca dari suatu file   media atau server streaming; menyediakan  method untuk Player mengakses   data masukan.</td>
</tr>
</tbody>
</table>
<p style="text-align: left;">Table 2: MMAPI Interfaces</p>
<table style="width: 583px; height: 1018px;" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="235" valign="top"><strong>Package</strong></td>
<td width="165" valign="top"><strong>Interface</strong></td>
<td width="174" valign="top"><strong>Keterangan</strong></td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media</td>
<td width="165" valign="top">Control</td>
<td width="174" valign="top">Digunakan untuk mengendalikan beberapa pengolahan media   yang berhubungan dengan fungsi:diperoleh dari interface Controllable,   diturunkan oleh Player; mungkinkan suatu Player   untuk menggunakan, sebagai contoh VolumeControl untuk mengizinkan user untuk   menset volume.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media</td>
<td width="165" valign="top">Controllable</td>
<td width="174" valign="top">Menyediakan sebuah interface untuk memperoleh Control   dari Player   atau obyek lain.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media</td>
<td width="165" valign="top">Player</td>
<td width="174" valign="top">Digunakan untuk mengontrol render dari data media.   Menyediakan method untuk mengatur life-cycle Player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media</td>
<td width="165" valign="top">PlayerListener</td>
<td width="174" valign="top">Menerima event yang dibuat oleh Player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media</td>
<td width="165" valign="top">TimeBase</td>
<td width="174" valign="top">Mengetahui urutan program tiap waktunya; digunakan untuk   ukuran waktu proses, dan sikronisais media playback dengan banyak user.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">FramePositionControl</td>
<td width="174" valign="top">Mengontrol secara persis posisi frame dari video untuk   sebuah Player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">GUIControl</td>
<td width="174" valign="top">Harus   diimplementasikan pada setiap control yang mendukung komponen GUI.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">MetaDataControl</td>
<td width="174" valign="top">Digunakan untuk   mendapatkan informasi metadata di dalam media streaming.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">MIDIControl</td>
<td width="174" valign="top">Menyediakan akses render dan mengirimkan MIDI.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">PitchControl</td>
<td width="174" valign="top">Mengontrol pola playback audio tanpa merubah kecepatan   playback.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">RateControl</td>
<td width="174" valign="top">Mengontrol playback rate dari player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">RecordControl</td>
<td width="174" valign="top">Mengontrol recoding media dari   player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">StopTimeControl</td>
<td width="174" valign="top">Digunakan menentukan waktu stop untuk sebuah player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">TempoControl</td>
<td width="174" valign="top">Mengontrol   tempo sebuah lagu: diimplementasikan dalam player pada file MIDI.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">ToneControl</td>
<td width="174" valign="top">Mungkinkan user   playback (memutar ulang) urutan nada-nada tunggal.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">VideoControl</td>
<td width="174" valign="top">Mengontrol   tampilan video, sebagai contoh lokasinya dicanvas dimana video ditampilkan.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.control</td>
<td width="165" valign="top">VolumeControl</td>
<td width="174" valign="top">Mengontrol volume player.</td>
</tr>
<tr>
<td width="235" valign="top">javax.microedition.media.protocol</td>
<td width="165" valign="top">SourceStream</td>
<td width="174" valign="top">Digunakan   bersama dengan DataSource untuk menyediakan interface   masukan Player; turunan dari interface   Controllable, sehingga menyediakan kendali yang spesifik.</td>
</tr>
</tbody>
</table>
<p style="text-align: left;">Table 3: MMAPI Exceptions</p>
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="197" valign="top"><strong>Package</strong></td>
<td width="197" valign="top"><strong>Exception</strong></td>
<td width="197" valign="top"><strong>Keterangan</strong></td>
</tr>
<tr>
<td width="197" valign="top">javax.microedition.media</td>
<td width="197" valign="top">MediaException</td>
<td width="197" valign="top">Melaporkan kesalahan tidak terduga (unexpected)   method mengolaah media.</td>
</tr>
</tbody>
</table>
<h2>Menggunakan MMAPI</h2>
<p>Pada bagian ini akan dibahas bagaimana memanfaatkan MMAPI untuk membangun aplikasi J2ME berbasis MMAPI.</p>
<h3>Aplikasi Tone</h3>
<p>Pembuatan Tone di identikkan dengan frekusi dan durasi. Tipe ini penting untuk game dan aplikasi audio, terutama untuk peralatan kecil, dimana hanya mempunyai kemampuan multimedia yang terbatas. Method Manager.playTone() membuat tone. Implemtasinya dapat dipetakan pada hardware tone generator, yaitu menetapkan note, durasi, dan volume.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code10'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39710"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
</pre></td><td class="code" id="p397code10"><pre class="java" style="font-family:monospace;">...
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   <span style="color: #666666; font-style: italic;">// play a tone for 4000 milliseconds at volume 100</span>
   Manager.<span style="color: #006633;">playTone</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#40;</span>ToneControl.<span style="color: #006633;">C4</span>, <span style="color: #cc66cc;">4000</span>, <span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>MediaException me<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<h3>Aplikasi MP3 Playback</h3>
<p>Berikut contoh simple bagaimana memutar file mp3 tanpa dilengkapi pengontrol.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code11'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39711"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p397code11"><pre class="java" style="font-family:monospace;">...
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   Player p <span style="color: #339933;">=</span> Manager.<span style="color: #006633;">createPlayer</span>
	 <span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://server/somemusic.mp3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">setLoopCount</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> ioe<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>MediaException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<p>Berikut potongan program yang dilengkapi dengan pegontrol media.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code12'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39712"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
</pre></td><td class="code" id="p397code12"><pre class="java" style="font-family:monospace;">...
<span style="color: #006633;">Player</span> p<span style="color: #339933;">;</span>
VolumeControl vc<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   p <span style="color: #339933;">=</span> Manager.<span style="color: #006633;">createPlayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://server/somemusic.mp3&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">realize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">// get volume control for player and set volume to max</span>
   vc <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>VolumeControl<span style="color: #009900;">&#41;</span> p.<span style="color: #006633;">getControl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VolumeControl&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #000000; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>vc <span style="color: #339933;">!=</span> <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  vc.<span style="color: #006633;">setVolume</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #009900;">&#125;</span>
   <span style="color: #666666; font-style: italic;">// the player can start with the smallest latency</span>
   p.<span style="color: #006633;">prefetch</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">// non-blocking start</span>
   p.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> ioe<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>MediaException e<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<p>Karena semua InputStream dapat dilewatkan method Manager.createPlayer(), maka aplikasi dapat diputar ulang media dari MIDP Record Management System (RMS), atau dari file JAR. Berikut ini bagaimana memperoleh InputStream dari RMS dan memutar media yang disimpan didalamnya.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code13'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39713"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code" id="p397code13"><pre class="java" style="font-family:monospace;">...
<span style="color: #006633;">RecordStore</span> store<span style="color: #339933;">;</span>
<span style="color: #000066; font-weight: bold;">int</span> id<span style="color: #339933;">;</span>
<span style="color: #666666; font-style: italic;">// play back from a record store</span>
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Ainputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">InputStream</span></a> is <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Abytearrayinputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">ByteArrayInputStream</span></a>
	 <span style="color: #009900;">&#40;</span>store.<span style="color: #006633;">getRecord</span><span style="color: #009900;">&#40;</span>id<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   Player player <span style="color: #339933;">=</span> Manager.<span style="color: #006633;">createPlayer</span><span style="color: #009900;">&#40;</span>is, <span style="color: #0000ff;">&quot;audio/X-wav&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> ioe<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>MediaException me<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<p>Di bawah ini contoh yang menyimpan mediannya di file JAR.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code14'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39714"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
</pre></td><td class="code" id="p397code14"><pre class="java" style="font-family:monospace;">...
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Ainputstream+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">InputStream</span></a> is <span style="color: #339933;">=</span>
	 getClass<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #006633;">getResourceAsStream</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;audio.wav&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   Player player <span style="color: #339933;">=</span> Manager.<span style="color: #006633;">createPlayer</span><span style="color: #009900;">&#40;</span>is, <span style="color: #0000ff;">&quot;audio/X-wav&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> ioe<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>MediaException me<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<h3>Aplikasi Video Playback</h3>
<p>Berikut potongan program yang menunjukkan bagaimana memutar sebuah video berformat MPG.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code15'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39715"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code" id="p397code15"><pre class="java" style="font-family:monospace;">...
<span style="color: #006633;">Player</span> p<span style="color: #339933;">;</span>
VideoControl vc<span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
   p <span style="color: #339933;">=</span> Manager.<span style="color: #006633;">createPlayer</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;http://server/somemovie.mpg&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   p.<span style="color: #006633;">realize</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   <span style="color: #666666; font-style: italic;">// get video control</span>
   vc <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>VideoControl<span style="color: #009900;">&#41;</span> p.<span style="color: #006633;">getControl</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;VideoControl&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
   ....
   <span style="color: #006633;">p</span>.<span style="color: #006633;">start</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aioexception+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">IOException</span></a> ioe<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
<span style="color: #000000; font-weight: bold;">catch</span><span style="color: #009900;">&#40;</span>MediaException me<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
<span style="color: #009900;">&#125;</span>
...</pre></td></tr></table></div>

<h3>Aplikasi Camera</h3>
<p>MMAPI memasukkan dukungan kamera di dalamnya.</p>
<h4>Capture Video dari Player</h4>
<p>Penentuan lokasi untuk kamera menggunakan: capture://video. Suatu aplikasi dapat menggunakan VideoControl untuk menampilkan suatu view finder di layar dengan ukuran standar.</p>
<pre>mPlayer = Manager.createPlayer("capture://video");</pre>
<p>Jika piranti yang digunakan tidak mendukung video capture, maka akan menghasilkan MediaException. Jika MediaException bernilai true medukung video capture.</p>
<p>Player perlu di release untuk memperoleh resource yang diperlukan dalam mengambil gambar.</p>
<pre>mPlayer.realize();</pre>
<h4>Menampilkan Camera Video</h4>
<p>Video yang berasal dari camera dapat ditampilkan di layar sebagai salah satu Item dalam Form atau bagian dari Canvas. Sebuah VideoControl membuatnya mungkin. VideoControl dapat diperoleh dari Player.</p>
<pre>mVideoControl = (VideoControl)
mPlayer.getControl("VideoControl");</pre>
<p>Jika mengharapkan menampilkan video dari camera di Canvas, inisialisasi VideoControl, kemudian set ukuran dan lokasi dari video di dalam Canvas, kemudian buat video menjadi terlihat (visible). Contoh berikut (konstruktor Canvas dan subclass) menunjukkan bagaimana video ditempatkan dua pixel di dalam form Canvas. Jika video tidak dapat ditempatkan pada lokasi yang ditentukan, maka oleh kontruktor diset menjadi satu layar penuh (full screen). Langkah terakhir adalah memanggil method setVisible() agar camera tampil.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code16'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39716"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code" id="p397code16"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">public</span> CameraCanvas<span style="color: #009900;">&#40;</span>SnapperMIDlet midlet,
	VideoControl videoControl<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">int</span> width <span style="color: #339933;">=</span> getWidth<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">int</span> height <span style="color: #339933;">=</span> getHeight<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  mSnapperMIDlet <span style="color: #339933;">=</span> midlet<span style="color: #339933;">;</span>
&nbsp;
  videoControl.<span style="color: #006633;">initDisplayMode</span><span style="color: #009900;">&#40;</span>
	  VideoControl.<span style="color: #006633;">USE_DIRECT_VIDEO</span>, <span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span>
	videoControl.<span style="color: #006633;">setDisplayLocation</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	videoControl.<span style="color: #006633;">setDisplaySize</span><span style="color: #009900;">&#40;</span>width <span style="color: #339933;">-</span> <span style="color: #cc66cc;">4</span>, height <span style="color: #339933;">-</span> <span style="color: #cc66cc;">4</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #009900;">&#125;</span>
  <span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>MediaException me<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">try</span> <span style="color: #009900;">&#123;</span> videoControl.<span style="color: #006633;">setDisplayFullScreen</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #009900;">&#125;</span>
	<span style="color: #000000; font-weight: bold;">catch</span> <span style="color: #009900;">&#40;</span>MediaException me2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
  videoControl.<span style="color: #006633;">setVisible</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Menampilkan video camera dalam sebuah Form hanya berbeda sedikit. Pada method initDisplayMode() pada VideoControl dari USE_DIRECT_VIDEO diganti dengan USE_GUI_PRIMITIVE. Dalam piranti MIDP dapat memperoleh Item yang dan dapat ditempatkan di dalam sebuah Form untuk ditampilkan.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code17'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39717"><td class="line_numbers"><pre>1
2
3
4
</pre></td><td class="code" id="p397code17"><pre class="java" style="font-family:monospace;">Form form <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Camera form&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
Item item <span style="color: #339933;">=</span> <span style="color: #009900;">&#40;</span>Item<span style="color: #009900;">&#41;</span>mVideoControl.<span style="color: #006633;">initDisplayMode</span><span style="color: #009900;">&#40;</span>
GUIControl.<span style="color: #006633;">USE_GUI_PRIMITIVE</span>, <span style="color: #000066; font-weight: bold;">null</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
form.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span>item<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<h4>Capture Image</h4>
<p>Sekali camera dapat ditampilkan dipiranti, maka capture sebuah image dapat dilakukan dengan mudah dengan memanggil getSnapshot() pada VideoControl. Method tersebut dapat dilengkapi dengan tipe gambar atau tanpa tipe gambar. Default gambar yang dihasilkan bertipe PNG tergantung dengan tipe handset yang digunakan.</p>
<p>Method getSnapshot() mengembalikan sebuah array bertipe byte, yang merupakan data image dalam format yang diinginkan. Dari hasil array tersebut poin yang dapat diambil adalah: mungkin menyimpan byte tersebut dalam record store, mengirimkan ke server atau membuat sebuah Image dari array tersebut sehingga user dapat melihat gambar yang baru saja diambilnya. Berikut contoh pembuatan Image dari array yang dihasilkan dari method getSnapshot().</p>
<pre>byte[] raw = mVideoControl.getSnapshot(null);
Image image = Image.createImage(raw, 0, raw.length);</pre>
<h4>Membuat Thumbnail Image</h4>
<p>Satu hal kelihatannya sederhana adalah bagaimana menampilkan image (gambar) dengan thumbnail, suatu versi menangkap gambar dari kamera. Pada MIDP 2.0 di dalamnya terdapat method untuk memperoleh MIDP 20 memasukkan di dalamnya metoda untuk memperoleh nilai piksel paling luar dari image, dengan nilai tersebut memungkinkan membuat skala transformasi yang benar. Sayangnya MIDP 1.0 tidak dapat menghasilkan data piksel.</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p397code18'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p39718"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
</pre></td><td class="code" id="p397code18"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">private</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a> createThumbnail<span style="color: #009900;">&#40;</span><a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a> image<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
  <span style="color: #000066; font-weight: bold;">int</span> sourceWidth <span style="color: #339933;">=</span> image.<span style="color: #006633;">getWidth</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">int</span> sourceHeight <span style="color: #339933;">=</span> image.<span style="color: #006633;">getHeight</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000066; font-weight: bold;">int</span> thumbWidth <span style="color: #339933;">=</span> <span style="color: #cc66cc;">64</span><span style="color: #339933;">;</span>
  <span style="color: #000066; font-weight: bold;">int</span> thumbHeight <span style="color: #339933;">=</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>thumbHeight <span style="color: #339933;">==</span> <span style="color: #339933;">-</span><span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span>
	thumbHeight <span style="color: #339933;">=</span> thumbWidth <span style="color: #339933;">*</span> sourceHeight <span style="color: #339933;">/</span> sourceWidth<span style="color: #339933;">;</span>
&nbsp;
  <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a> thumb <span style="color: #339933;">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a>.<span style="color: #006633;">createImage</span><span style="color: #009900;">&#40;</span>thumbWidth, thumbHeight<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Agraphics+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Graphics</span></a> g <span style="color: #339933;">=</span> thumb.<span style="color: #006633;">getGraphics</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> y <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> y <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> thumbHeight<span style="color: #339933;">;</span> y<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> x <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> x <span style="color: #339933;">&amp;</span>lt<span style="color: #339933;">;</span> thumbWidth<span style="color: #339933;">;</span> x<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
	  g.<span style="color: #006633;">setClip</span><span style="color: #009900;">&#40;</span>x, y, <span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	  <span style="color: #000066; font-weight: bold;">int</span> dx <span style="color: #339933;">=</span> x <span style="color: #339933;">*</span> sourceWidth <span style="color: #339933;">/</span> thumbWidth<span style="color: #339933;">;</span>
	  <span style="color: #000066; font-weight: bold;">int</span> dy <span style="color: #339933;">=</span> y <span style="color: #339933;">*</span> sourceHeight <span style="color: #339933;">/</span> thumbHeight<span style="color: #339933;">;</span>
	  g.<span style="color: #006633;">drawImage</span><span style="color: #009900;">&#40;</span>image, x <span style="color: #339933;">-</span> dx, y <span style="color: #339933;">-</span> dy,
		  <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Agraphics+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Graphics</span></a>.<span style="color: #006633;">LEFT</span> <span style="color: #339933;">|</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Agraphics+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Graphics</span></a>.<span style="color: #006633;">TOP</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
  <span style="color: #009900;">&#125;</span>
&nbsp;
  <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a> immutableThumb <span style="color: #339933;">=</span> <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Aimage+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">Image</span></a>.<span style="color: #006633;">createImage</span><span style="color: #009900;">&#40;</span>thumb<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #000000; font-weight: bold;">return</span> immutableThumb<span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>MMAPI mendukung beberapa format audio dan video, yaitu:</p>
<ul>
<li>Audio: PCM and WAV</li>
<li> MIDI: Type 0 (single track), Type 1 (multiple tracks), and SP-MIDI</li>
<li> Video: MPEG-1</li>
</ul>
<h2>Kesimpulan</h2>
<p>Mobile Media API adalah suatu API yang fleksibel dan powerfull yang menyediakan rendering dan capture data audio dan video. Lokasi file dapat ditempatkan di piranti mobile maupun di server dengan memanfaatkan koneksi jaringan internet.</p>
<h2>Daftar Pustaka</h2>
<ul>
<li>Knudsen, Jonathan., Taking Pictures with MMAPI., http://developers.sun.com/mobility/midp/articles/picture/., July 2003</li>
<li>Mahmoud, H, Qusay., The J2ME Mobile Media API., http://developers.sun.com/mobility/midp/articles/mmapioverview/., June 2003</li>
<li>Feng, Yu and Zhu Jun; Wireless Java Programming with 2 Micro Edition; SAMS; Indianapolis; USA; 2001</li>
<li>Keogh, James; J2ME:The Complete Reference; McGraw-Hill; New York;</li>
<li>Riggs, Roger; Taivalsaari, Antero; Peursem, Van, Jim; Huopaniemi, Jyri; Patel, Mark;  Uotila,  Aleksi; Editor,  Holliday, Jim; Programming Wireless Devices with the Java™ 2 Platform, Micro Edition, Second Edition; Addison Wesley; Juni 2003.</li>
<li>Sun Developer Network;Java 2 Platform, Micro Edition (J2ME); JSR 68 Overview;</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://server/somemusic.mp3" length="1245" type="audio/mpeg" />
<enclosure url="http://server/somemovie.mpg" length="1245" type="video/mpeg" />
		</item>
		<item>
		<title>J2ME: Memanfaatkan Class TextBox</title>
		<link>http://www.andisun.com/tutorials/j2me-programming/j2me-memanfaatkan-class-textbox</link>
		<comments>http://www.andisun.com/tutorials/j2me-programming/j2me-memanfaatkan-class-textbox#comments</comments>
		<pubDate>Wed, 29 Jul 2009 00:21:15 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[J2ME-Mobile Programming]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[TextBox]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=312</guid>
		<description><![CDATA[Class TextBox merupakan turunan dari class Screen yang merepresentasikan sebuah kotak untuk mengisi teks. Konstruktor class TextBox adalah sebagai berikut: TextBox(String title, String text, int maxSize, int constraints); Agar lebih jelas untuk memahami tentang class TextBox berikut contoh programnya: ?View Code JAVA1 2 3 4 5 6 7 8 9 10 11 12 13 14 [...]]]></description>
			<content:encoded><![CDATA[<p>Class <span style="font-family: courier new,courier;">TextBox</span> merupakan turunan dari class <span style="font-family: courier new,courier;">Screen </span>yang merepresentasikan sebuah kotak untuk mengisi teks.</p>
<p>Konstruktor class TextBox adalah sebagai berikut:</p>
<p style="padding-left: 30px;"><span style="font-family: terminal,monaco;">TextBox(String title, String text, int maxSize, int constraints);</span></p>
<p>Agar lebih jelas untuk memahami tentang class <span style="font-family: courier new,courier;">TextBox </span>berikut contoh programnya:</p>

<div class="wp_codebox_msgheader"><span class="right"><sup><a href="http://www.ericbess.com/ericblog/2008/03/03/wp-codebox/#examples" target="_blank" title="WP-CodeBox HowTo?"><span style="color: #99cc00">?</span></a></sup></span><span class="left"><a href="javascript:;" onclick="javascript:showCodeTxt('p312code20'); return false;">View Code</a> JAVA</span><div class="codebox_clear"></div></div><div class="wp_codebox"><table><tr id="p31220"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
</pre></td><td class="code" id="p312code20"><pre class="java" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.midlet.*</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">import</span> <span style="color: #006699;">javax.microedition.lcdui.*</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">class</span> MIDTextBox <span style="color: #000000; font-weight: bold;">extends</span> MIDlet <span style="color: #000000; font-weight: bold;">implements</span> CommandListener <span style="color: #009900;">&#123;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">private</span> Display display<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> TextBox txt<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Form form<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Alert alert<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdExit<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdSetText<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdInsertText<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdClearText<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdInfoText<span style="color: #339933;">;</span>
    <span style="color: #000000; font-weight: bold;">private</span> Command cmdBack<span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> MIDTextBox<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        display <span style="color: #339933;">=</span> Display.<span style="color: #006633;">getDisplay</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        txt <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> TextBox<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Contoh Midlet TextBox&quot;</span>, <span style="color: #000066; font-weight: bold;">null</span>, <span style="color: #cc66cc;">256</span>, <a href="http://www.google.com/search?hl=en&amp;q=allinurl%3Atextfield+java.sun.com&amp;btnI=I%27m%20Feeling%20Lucky"><span style="color: #003399;">TextField</span></a>.<span style="color: #006633;">ANY</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cmdExit <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Exit&quot;</span>, Command.<span style="color: #006633;">EXIT</span>, <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cmdSetText <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Set Text&quot;</span>, Command.<span style="color: #006633;">SCREEN</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cmdInsertText <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Insert&quot;</span>, Command.<span style="color: #006633;">SCREEN</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cmdInfoText <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Info Text&quot;</span>, Command.<span style="color: #006633;">SCREEN</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        cmdBack <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Command<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Back&quot;</span>, Command.<span style="color: #006633;">BACK</span>, <span style="color: #cc66cc;">2</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
        txt.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdExit<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        txt.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdSetText<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        txt.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdInsertText<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        txt.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdInfoText<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        txt.<span style="color: #006633;">setCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> startApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        display.<span style="color: #006633;">setCurrent</span><span style="color: #009900;">&#40;</span>txt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> pauseApp<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">boolean</span> unconditional<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> commandAction<span style="color: #009900;">&#40;</span>Command c, Displayable d<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdExit<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            destroyApp<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">true</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            notifyDestroyed<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdSetText<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            txt.<span style="color: #006633;">setString</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Contoh Mengeset Text dalam TextBox&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdInsertText<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            txt.<span style="color: #006633;">insert</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Text Sisipan&quot;</span>, <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdClearText<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>txt.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;</span>gt<span style="color: #339933;">;</span> <span style="color: #cc66cc;">0</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
                txt.<span style="color: #006633;">delete</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span>, txt.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            <span style="color: #009900;">&#125;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdInfoText<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            form <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> Form<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Informasi Text&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            form.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Teks Aktif: &quot;</span> <span style="color: #339933;">+</span> txt.<span style="color: #006633;">getString</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            form.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Jumlah Karakter: &quot;</span> <span style="color: #339933;">+</span> txt.<span style="color: #006633;">size</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">+</span> <span style="color: #0000ff;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            form.<span style="color: #006633;">append</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Posisi cursor: &quot;</span> <span style="color: #339933;">+</span> txt.<span style="color: #006633;">getCaretPosition</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
            form.<span style="color: #006633;">addCommand</span><span style="color: #009900;">&#40;</span>cmdBack<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            form.<span style="color: #006633;">setCommandListener</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
            display.<span style="color: #006633;">setCurrent</span><span style="color: #009900;">&#40;</span>form<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span> <span style="color: #000000; font-weight: bold;">else</span> <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #009900;">&#40;</span>c <span style="color: #339933;">==</span> cmdBack<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
            display.<span style="color: #006633;">setCurrent</span><span style="color: #009900;">&#40;</span>txt<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        <span style="color: #009900;">&#125;</span>
    <span style="color: #009900;">&#125;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>Hasil program di atas adalah sebagai berikut:</p>
<p><span id="more-312"></span></p>
<div id="attachment_343" class="wp-caption alignnone" style="width: 223px"><img class="size-full wp-image-343" title="j2me_textbox_01" src="http://www.andisun.com/wp-content/uploads/2009/07/j2me_textbox_011.png" alt="Tampilan Awal" width="213" height="314" /><p class="wp-caption-text">Tampilan Awal</p></div>
<p>Setelah muncul gambar di atas, dapat dicoba diklik &#8220;Menu&#8221;, hasilnya adalah:</p>
<div id="attachment_344" class="wp-caption alignnone" style="width: 224px"><img class="size-full wp-image-344" title="j2me_textbox_02" src="http://www.andisun.com/wp-content/uploads/2009/07/j2me_textbox_02.png" alt="Pilihan Menu Aplikasi" width="214" height="314" /><p class="wp-caption-text">Pilihan Menu Aplikasi</p></div>
<p>Coba pilih menu Info Text, hasilnya adalah:</p>
<div id="attachment_345" class="wp-caption alignnone" style="width: 225px"><img class="size-full wp-image-345" title="j2me_textbox_03" src="http://www.andisun.com/wp-content/uploads/2009/07/j2me_textbox_03.png" alt="Tampilan menu &quot;Info Text&quot;" width="215" height="314" /><p class="wp-caption-text">Tampilan menu &quot;Info Text&quot;</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/tutorials/j2me-programming/j2me-memanfaatkan-class-textbox/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sekilas Java 2 Micro Edition (J2ME)</title>
		<link>http://www.andisun.com/artikel/sekilas-java-2-microedition-j2me</link>
		<comments>http://www.andisun.com/artikel/sekilas-java-2-microedition-j2me#comments</comments>
		<pubDate>Tue, 21 Jul 2009 18:16:25 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Artikel]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[edition]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[jvm]]></category>
		<category><![CDATA[kvm]]></category>
		<category><![CDATA[LifeCycle]]></category>
		<category><![CDATA[micro]]></category>
		<category><![CDATA[MIDP]]></category>
		<category><![CDATA[Mobile]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=175</guid>
		<description><![CDATA[J2ME (Java to Micro Edition) adalah platform Java yang ditargetkan secara spesifik untuk aplikasi yang jalan pada peralatan-peralatan kecil seperti mobile phone, PDA, switch jaringan, sistem navigasi, komponen peralatan otomatis rumah tangga dan sebagainya. J2ME dapat menjadi solusi untuk peralatan yang tidak mendukung secara penuh implementasi mnggunakan J2SE (Java to Standart Edition).]]></description>
			<content:encoded><![CDATA[<p>J2ME <em>(Java to Micro Edition)</em> adalah <em>platform</em> Java yang ditargetkan secara spesifik untuk aplikasi yang jalan pada peralatan-peralatan kecil seperti mobile phone, PDA, <em>switch</em> jaringan, sistem navigasi, komponen peralatan otomatis rumah tangga dan sebagainya. J2ME dapat menjadi solusi untuk peralatan yang tidak mendukung secara penuh implementasi mnggunakan J2SE <em>(Java to Standart Edition)</em>.</p>
<p>Sama seperti Java pada umumnya yang menggunakan JVM <em>(Java Virtual Machine)</em>, dalam J2ME juga menggunakan <em>virtual</em> mesin yang disebut <em>K Virtual Machine </em>(KVM). KVM<em> </em>adalah <em>virtual machine</em> dengan kapasitas memori yang sangat kecil. Huruf K diambil dari Kilobyte yang mengambarkan betapa kecil total memori yang digunakan mulai dari 128 kilobyte hingga maksimal rata-rata sekitar 512 kilobyte.</p>
<p>Aplikasi J2ME yang tertanam pada perangkat handphone dapat memanfaatkan teknologi yang sudah ada padanya. J2ME dapat memanfaatkan teknologi GPRS untuk membangun aplikasi berbasiskan Internet. Aplikasi pada user (pengguna handphone) juga dapat diperkaya dengan animasi-animasi grafis menarik dengan menawarkan interaksi user yang semakin meningkat.</p>
<p>Aplikasi yang dibangun menggunakan J2ME dengan profile MIDP <em>(Mobile Information Device Profile)</em> dikenal dengan nama MIDlet. MIDP sendiri khusus digunakan pada <em>handset</em> dengan CPU, memori, keyboard dan layar terbatas misalkan handphone, PDA dan sebagainya.</p>
<p><span id="more-175"></span></p>
<h2>Siklus Hidup J2ME</h2>
<p>Siklus Hidup<em> (LifeCycle)</em> dari MIDlet ditangani oleh <em>Application Management Software</em> (AMS). AMS ini adalah sebuah lingkungan tempat siklus sebuah MIDlet yang mampu diciptakan, dijalankan, dihentikan dan dihilangkan. AMS sering pula dinamakan dengan <em>Java Application Manager</em> (JAM). Method-method standar bawaan J2ME dapat dilihat pada gambar berikut.</p>
<div id="attachment_176" class="wp-caption alignnone" style="width: 394px"><img class="size-full wp-image-176" title="midlet_lifecycle" src="http://www.andisun.com/wp-content/uploads/2009/07/midlet_lifecycle.png" alt="LifeCycle sebuah MIDlet" width="384" height="225" /><p class="wp-caption-text">LifeCycle sebuah MIDlet</p></div>
<p>Dari gambar diatas dapat dijelaskan sebagai berikut:</p>
<ol>
<li>Ketika MIDlet pertama diciptakan dan diinisialisasi, MIDlet akan berada dalam state ”Pause”.</li>
<li>Apabila terjadi kesalahan selama kontruksi MIDlet, MIDlet akan berpindah ke state ”Destroy”, dan MIDlet batal diciptakan dengan memanggil fungsi standar destroyApp().</li>
<li>Selanjutnya, ketika MIDlet dijalankan. MIDlet akan berada pada state ”Active”, dalam hal ini fungsi standar yang dipanggil adalah startApp().</li>
<li>Akan tetapi, jika ditengah jalan MIDlet dihentikan sementara MIDlet akan berada dalam state ”Pause” dengan memanggil fungsi standar pauseApp(). Pada state ini diperlukan proses <em>celanUp</em> terhadap <em>garbage collector</em> yang dihasilkan.</li>
</ol>
<h2>Antar Muka</h2>
<p>Antar muka <em>(user interface)</em> MIDP terdiri atas API-API yang <em>High Level</em> dan <em>Low level</em>. <em>Low Level</em> API berbasiskan pada Canvas sedangkan <em>High Level</em> API berbasis pada screen. Class diagram dari user interface dapat dilihat pada gambar 2.4.</p>
<div id="attachment_177" class="wp-caption alignnone" style="width: 380px"><img class="size-full wp-image-177" title="class_diagram_j2me" src="http://www.andisun.com/wp-content/uploads/2009/07/class_diagram_j2me.png" alt="Class diagram tipe screen MIDP" width="370" height="200" /><p class="wp-caption-text">Class diagram tipe screen MIDP</p></div>
<p>Dengan dua class di atas user interface MIDP dapat dibentuk menjadi sebuah aplikasi MIDlet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/artikel/sekilas-java-2-microedition-j2me/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Abstraksi: J2ME-Pengaksesan File Multimedia Pada Mobile Device dengan MMAPI</title>
		<link>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi</link>
		<comments>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi#comments</comments>
		<pubDate>Mon, 13 Jul 2009 03:04:35 +0000</pubDate>
		<dc:creator>myandisun</dc:creator>
				<category><![CDATA[Jurnal]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Device]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[J2ME]]></category>
		<category><![CDATA[MMAPI]]></category>
		<category><![CDATA[Mobile]]></category>
		<category><![CDATA[Multimedia]]></category>
		<category><![CDATA[Real-time]]></category>

		<guid isPermaLink="false">http://www.andisun.com/?p=89</guid>
		<description><![CDATA[Mobile Media API (MMAPI) adalah sebuah optional package yang mendukung aplikasi multimedia di peralatan J2ME. Ini adalah standar Java yang ditetapkan oleh Java Community Process (JCP) dalam JSR 135. ]]></description>
			<content:encoded><![CDATA[<p>Oleh: Andi Sunyoto</p>
<p>Abstraksi</p>
<p><em>Mobile Media API (MMAPI)</em> adalah sebuah <em>optional package</em> yang mendukung aplikasi multimedia di peralatan J2ME. Ini adalah standar Java yang ditetapkan oleh <em>Java Community Process (JCP)</em> dalam JSR 135. Standar ini didesain fleksibel jalan di beberapa protokol dan format; contoh pengimplementasiannya tidak harus dengan protokol HTTP atau <em>Real-Time Transport Protokol (RTP)</em> saja, atau media dengan format MP3. MIDI atau MPEG-4 saja.</p>
<p>Kata kunci: J2ME, API, Multimedia, Mobile, Device, MMAPI, Internet, Real-time.</p>
<p>Email: Jika menginginkan lebih lengkap email ke: myandisun@gmail.com</p>
]]></content:encoded>
			<wfw:commentRss>http://www.andisun.com/jurnal/j2me-pengaksesan-file-multimedia-pada-mobile-device-dengan-mmapi/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

