<?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> &#187; MMAPI</title>
	<atom:link href="http://www.andisun.com/tag/mmapi/feed" rel="self" type="application/rss+xml" />
	<link>http://www.andisun.com</link>
	<description></description>
	<lastBuildDate>Mon, 30 Aug 2010 03:28:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.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>3</slash:comments>
		</item>
	</channel>
</rss>
