ANDROID MULTIMEDIA
Pengolahan Gambar dan Vidio
Android 4.4 (API level 19) memperkenalkan Storage Access Framework (SAF-Kerangka Kerja Akses Penyimpanan). SAF memudahkan pengguna menjelajah dan membuka dokumen, gambar, dan file lainnya di semua penyedia penyimpanan dokumen pilihannya. UI standar yang mudah digunakan memungkinkan pengguna menjelajah file dan mengakses yang terbaru dengan cara konsisten di antara berbagai aplikasi dan penyedia.
Layanan storage di awan atau lokal bisa dilibatkan dalam ekosistem ini dengan mengimplementasikan sebuah DocumentsProvider yang membungkus layanannya. Aplikasi klien yang memerlukan akses ke dokumen sebuah penyedia bisa berintegrasi dengan SAF cukup dengan beberapa baris kode.
SAF terdiri dari berikut ini:
- Penyedia dokumen Penyedia materi yang memungkinkan layanan storage (seperti Google Drive) untuk menampilkan file yang dikelolanya. Penyedia dokumen diimplementasikan sebagai subkelas dari kelas DocumentsProvider. Skema penyedia dokumen berdasarkan hierarki file biasa, walaupun cara penyedia dokumen Anda secara fisik menyimpan data adalah terserah Anda. Platform Android terdiri dari beberapa penyedia dokumen bawaan, seperti Downloads, Images, dan Videos.
- Aplikasi klien Aplikasi khusus yang memanggil maksud ACTION_OPEN_DOCUMENT dan/atau ACTION_CREATE_DOCUMENT dan menerima file yang dikembalikan penyedia dokumen.
- Picker UI sistem yang memungkinkan pengguna mengakses dokumen dari semua penyedia dokumen yang memenuhi kriteria penelusuran aplikasi klien.
Beberapa fitur yang disediakan oleh SAF adalah sebagai berikut:
- Memungkinkan pengguna menjelajah materi dari semua penyedia dokumen, bukan hanya satu aplikasi.
- Memungkinkan aplikasi Anda memiliki akses jangka panjang dan tetap ke dokumen yang dimiliki oleh penyedia dokumen. Melalui akses ini pengguna bisa menambah, mengedit, menyimpan, dan menghapus file pada penyedia.
- Mendukung banyak akun pengguna dan akar jangka pendek seperti penyedia penyimpanan USB, yang hanya muncul jika drive itu dipasang.
Audio support
Audio formats and codecs
| Format / Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
| AAC LC | Support for mono/stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz. | • 3GPP (.3gp) • MPEG-4 (.mp4, .m4a) • ADTS raw AAC (.aac, decode in Android 3.1+, encode in Android 4.0+, ADIF not supported) • MPEG-TS (.ts, not seekable, Android 3.0+) |
||
| HE-AACv1 (AAC+) | (Android 4.1+) | |||
| HE-AACv2 (enhanced AAC+) | Support for stereo/5.0/5.1 content with standard sampling rates from 8 to 48 kHz. | |||
| AAC ELD (enhanced low delay AAC) | (Android 4.1+) | (Android 4.1+) | Support for mono/stereo content with standard sampling rates from 16 to 48 kHz | |
| AMR-NB | 4.75 to 12.2 kbps sampled @ 8kHz | 3GPP (.3gp) | ||
| AMR-WB | 9 rates from 6.60 kbit/s to 23.85 kbit/s sampled @ 16kHz | 3GPP (.3gp) | ||
| FLAC | (Android 4.1+) | (Android 3.1+) | Mono/Stereo (no multichannel). Sample rates up to 48 kHz (but up to 44.1 kHz is recommended on devices with 44.1 kHz output, as the 48 to 44.1 kHz downsampler does not include a low-pass filter). 16-bit recommended; no dither applied for 24-bit. | FLAC (.flac) only |
| MIDI | MIDI Type 0 and 1. DLS Version 1 and 2. XMF and Mobile XMF. Support for ringtone formats RTTTL/RTX, OTA, and iMelody | • Type 0 and 1 (.mid, .xmf, .mxmf) • RTTTL/RTX (.rtttl, .rtx) • OTA (.ota) • iMelody (.imy) |
||
| MP3 | Mono/Stereo 8-320Kbps constant (CBR) or variable bit-rate (VBR) | MP3 (.mp3) | ||
| Opus | (Android 5.0+) | Matroska (.mkv) | ||
| PCM/WAVE | (Android 4.1+) | 8- and 16-bit linear PCM (rates up to limit of hardware). Sampling rates for raw PCM recordings at 8000, 16000 and 44100 Hz. | WAVE (.wav) | |
| Vorbis | • Ogg (.ogg) • Matroska (.mkv, Android 4.0+) |
Video support
Video formats and codecs
| Format / Codec | Encoder | Decoder | Details | Supported File Type(s) / Container Formats |
| H.263 | Support for H.263 is optional in Android 7.0+ | • 3GPP (.3gp) • MPEG-4 (.mp4) |
||
| H.264 AVC Baseline Profile (BP) |
(Android 3.0+) | • 3GPP (.3gp) • MPEG-4 (.mp4) • MPEG-TS (.ts, AAC audio only, not seekable, Android 3.0+) |
||
| H.264 AVC Main Profile (MP) |
(Android 6.0+) | The decoder is required, the encoder is recommended. | ||
| H.265 HEVC | (Android 5.0+) | Main Profile Level 3 for mobile devices and Main Profile Level 4.1 for Android TV | • MPEG-4 (.mp4) | |
| MPEG-4 SP | 3GPP (.3gp) | |||
| VP8 | (Android 4.3+) | (Android 2.3.3+) | Streamable only in Android 4.0 and above | • WebM (.webm) • Matroska (.mkv, Android 4.0+) |
| VP9 | (Android 4.4+) | • WebM (.webm) • Matroska (.mkv, Android 4.0+) |
Network protocols
The following network protocols are supported for audio and video playback:
- RTSP (RTP, SDP)
- HTTP/HTTPS progressive streaming
- HTTP/HTTPS live streaming draft protocol :
- MPEG-2 TS media files only
- Protocol version 3 (Android 4.0 and above)
- Protocol version 2 (Android 3.x)
- Not supported before Android 3.0
MEDIA PLAYER
Kerangka multimedia Android mencakup dukungan untuk memainkan berbagai jenis media umum, sehingga Anda dapat dengan mudah mengintegrasikan audio, video dan gambar ke dalam aplikasi Anda. Anda dapat memutar audio atau video dari file media yang tersimpan dalam sumber daya aplikasi Anda (sumber daya mentah), dari file mandiri di filesystem, atau dari aliran data yang sampai pada koneksi jaringan, semuanya menggunakan API MediaPlayer.
MANIFEST DECLARATIONS
Sebelum memulai pengembangan aplikasi Anda menggunakan MediaPlayer, pastikan manifes Anda memiliki deklarasi yang sesuai untuk memungkinkan penggunaan fitur terkait. Izin Internet – Jika Anda menggunakan MediaPlayer untuk streaming konten berbasis jaringan, aplikasi Anda harus meminta akses jaringan. <using-permission android: name = “android.permission.INTERNET” /> Izin Kunci Bangun – Jika aplikasi pemutar Anda perlu agar layar tidak redup atau prosesor tidak tertidur, atau gunakan metode MediaPlayer.setScreenOnWhilePlaying () atau MediaPlayer.setWakeMode (), Anda harus meminta izin ini.
<using-permission android: name = “android.permission.WAKE_LOCK” />
Cara Membuat Aplikasi Media Player Audio Android
- Pertama buka Android Studio
- PilihStart a New Android Studio Project
![]() |
| Start a New Android Studio Project |
3..Kedua pada bagian Create New Project, sesuaikan dengan nama dan package serta lokasi file yang akan kalian gunakan. Untuk contoh saya menggunakan seperti yang ada di gambar di bawah. Jika sudah pilih Next.
![]() |
| Create New Project |
- Selanjutnya tentukan Target Android Devicesdari Aplikasi kalian , secara default saya menggunakan API 15 untuk minimumnya. Jika sudah pilih Next.
![]() |
| Target Android Devices |
- Pada bagian Add an Activity to Mobile kita bisa memilih template bawaan yang masih kosong yaitu Empty Activity lalu pilih Next
![]() |
| Empty Activity |
- Selanjutnya di bagian Cutomize the Activity kita hanya perlu memilih tombol Finish.
![]() |
| Cutomize the Activity |
7.Setelah itu kita tunggu sampai proses building project gradle selesai .
- Mempersiapkan file mp3
Sebelumnya kita persiapkan file mp3 kalian, terserah kalian entah lagu favorit kalian bisa gunakan, yang nanti kita akan taruh filenya di folder raw (res/raw).
- Membuat folder raw
Pada folder res di struktur project Android Studio kalian, klik kanan lalu pilih New > pilih Android Resource Directory
Kemudian pilih raw lalu pilih tombol OK.
Setelah folder raw berhasil di buat , lalu kita copykan atau drag file .mp3 ke folder raw, Seperti pada gambar di bawah ,file mp3nya bernama indonesiaraya.mp3 :
![]() |
| folder raw dengan file .mp3 |
- Layout
Pada bagian file layout kita bisa pilih Design. Lalu drag widget Button ke area layout.
![]() |
| widget Button di bagian Palette |
Selanjutnya pada bagian Text di file layout. Salin baris intruksi (codingan) berikut ke file layout activity_main.xml activity_main.xml
<?xml version=”1.0″ encoding=”utf-8″?>
<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android”
xmlns:tools=”http://schemas.android.com/tools”
android:layout_width=”match_parent”
android:layout_height=”match_parent”
tools:context=”.MainActivity”>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:textAppearance=”?android:attr/textAppearanceLarge”
android:text=”Lagu Indonesia Raya”
android:id=”@+id/textView”
android:layout_marginTop=”59dp”
android:layout_alignParentTop=”true”
android:layout_centerHorizontal=”true”/>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”PLAY”
android:id=”@+id/btnPLAY”
android:layout_marginTop=”102dp”
android:layout_below=”@+id/textView”
android:layout_toLeftOf=”@+id/btnPAUSE”
android:layout_toStartOf=”@+id/btnPAUSE”/>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”STOP”
android:id=”@+id/btnSTOP”
android:layout_alignTop=”@+id/btnPAUSE”
android:layout_toRightOf=”@+id/btnPAUSE”
android:layout_toEndOf=”@+id/btnPAUSE”/>
<Button
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:text=”PAUSE”
android:id=”@+id/btnPAUSE”
android:layout_alignTop=”@+id/btnPLAY”
android:layout_centerHorizontal=”true”/>
<TextView
android:layout_width=”wrap_content”
android:layout_height=”wrap_content”
android:textAppearance=”?android:attr/textAppearanceLarge”
android:text=”by okedroid.com”
android:id=”@+id/textView2″
android:layout_marginBottom=”106dp”
android:layout_alignParentBottom=”true”
android:layout_centerHorizontal=”true”/>
</RelativeLayout>
- Activity
Lalu pada bagian Activity. Salin baris intruksi (codingan) berikut ke file java MainActivity.java
MainActivity.java
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
public class MainActivity extends AppCompatActivity {
/** Called when the activity is first created. */
private Button btnPlay;
private Button btnPause;
private Button btnStop;
private MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = new MediaPlayer();
btnPlay = (Button) findViewById(R.id.btnPLAY);
btnPause = (Button) findViewById(R.id.btnPAUSE);
btnStop = (Button) findViewById(R.id.btnSTOP);
stateAwal();
btnPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
play();
btnPlay.setEnabled(false);
btnPause.setEnabled(true);
btnStop.setEnabled(true);
}
});
btnPause.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pause();
}
});
btnStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stop();
}
});
}
/** State Awal / Pertama Dijalankan */
public void stateAwal(){
btnPlay.setEnabled(true);
btnPause.setEnabled(false);
btnStop.setEnabled(false);
}
/** Dijalankan Oleh Tombol Play */
private void play() {
/** Memanggil File MP3 “indonesiaraya.mp3” */
mp = MediaPlayer.create(this, R.raw.indonesiaraya);
try {
mp.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
/** Menjalankan Audio */
mp.start();
/** Penanganan Ketika Suara Berakhir */
mp.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
stateAwal();
}
});
}
/** Dijalankan Oleh Tombol Pause */
public void pause(){
if(mp.isPlaying()){
if(mp!=null){
mp.pause();
}
} else {
if(mp!=null){
mp.start();
}
}
}
/** Dijalankan Oleh Tombol Stop */
public void stop(){
mp.stop();
try{
mp.prepare();
mp.seekTo(0);
}catch (Throwable t) {
t.printStackTrace();
}
stateAwal();
}
}
- Menjalankan Aplikasi
Setelah selesai semua , sekarang kita coba test dengan menjalankan Aplikasinya di Android Studio. Perlu di ingat pastikan kalian menjalankan Aplikasi ini di perangkat/Smartphone Android(Real Device) kalian. Karna Aplikasi ini tidak bisa berjalan di Emulator atau sejenisnya.
![]() |
| Hasil tampilan Aplikasi sebelum Media Player di Play |
![]() |
| Hasil tampilan Aplikasi sesudah Media Player di Play |
Untuk File PPT dapat didownload dengan klik link disamping PMO Pertemuan 7 Android Multimedia
Refrensi
- https://developer.android.com/guide/topics/providers/document-provider.html?q=multimedia%20android&hl=idhttps://developer.android.com/guide/topics/media/media-formats.
- htmlhttps://developer.android.com/guide/topics/media/mediaplayer.html
- mediaplayerhttp://www.okedroid.com/2016/02/cara-membuat-aplikasi-media-player-audio-android.html








