Archive

Archive for the ‘Delphi’ Category

Ayo Membuat MP3 Player Sederhana di Android

January 14th, 2012 No comments

Ini cuma aplikasi sederhana cara memainkan MP3 di SDCARD, dengan menampilkan daftar lagu MP3 pada sebuah ListView.

Buat proyek baru dengan nama MP3Player di Eclipse. Activity utama kita bernama Mp3PlayerActivity.

Layout

Pertama-tama definisikan layout untuk menampilkan daftar lagu. Pakai saja ListView untuk menyederhanakan program. Nanti kalau sudah mahir boleh pakai list yang lebih cantik tampilannya. Jadi bikin dulu layout baru namanya daftarlagu.xml.

<?xml version=“1.0″ encoding=“utf-8″?>

<LinearLayout

xmlns:android=“http://schemas.android.com/apk/res/android”

android:orientation=“vertical”

android:layout_width=“match_parent”

android:layout_height=“match_parent”>

<ListView android:id=“@id/android:list”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:layout_weight=“1″

android:drawSelectorOnTop=“false”

/>

<TextView android:id=“@id/android:empty”

android:layout_width=“fill_parent”

android:layout_height=“fill_parent”

android:text=“tidak ada lagu SD Card”

/>

</LinearLayout>

ListView yang cukup simple, yang akan menampilkan text “tidak ada lagi di SD card” ketika tidak ada items ditemukan di ListView.

Lalu bikin lagi file XML untuk menampilkan setiap file MP3 yang akan dimunculkan di ListView, kasi nama misalnya viewlagu.xml.

<?xml version=“1.0″ encoding=“utf-8″?>

<?xml version=“1.0″ encoding=“utf-8″?>

<TextView android:id=“@+id/text1″ xmlns:android=“http://schemas.android.com/apk/res/android”

android:layout_width=“wrap_content”

android:layout_height=“wrap_content”/>

Activity

Kemudian buka file MP3PlayerActivity.java yang sudah otomatis dibuat pada saat create project sebelumnya. Edit file tersebut sehingga lengkap seperti sebagai berikut:

package com.vitraining;

import java.io.File;

import java.io.FilenameFilter;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

import android.app.ListActivity;

import android.media.MediaPlayer;

import android.media.MediaPlayer.OnCompletionListener;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.ArrayAdapter;

import android.widget.ListView;

public class Mp3PlayerActivity extends ListActivity {

private static final String MEDIA_PATH = new String(“/sdcard/”);

private List<String> songs = new ArrayList<String>();

private MediaPlayer mp = new MediaPlayer();

private int currentPosition = 0;

@Override

public void onCreate(Bundle icicle) {

super.onCreate(icicle);

setContentView(R.layout.daftarlagu);

updateDaftarLagu();

}

public void updateDaftarLagu() {

File home = new File(MEDIA_PATH);

if (home.listFiles(new Mp3Filter()).length > 0) {

for (File file : home.listFiles(new Mp3Filter())) {

songs.add(file.getName());

}

ArrayAdapter<String> songList = new ArrayAdapter<String>(this, R.layout.viewlagu, songs);

setListAdapter(songList);

}

}

@Override

protected void onListItemClick(ListView l, View v, int position, long id) {

currentPosition = position;

playSong(MEDIA_PATH + songs.get(position));

}

private void playSong(String songPath) {

try {

mp.reset();

mp.setDataSource(songPath);

mp.prepare();

mp.start();

// Setup listener so next song starts automatically

mp.setOnCompletionListener(new OnCompletionListener() {

public void onCompletion(MediaPlayer arg0) {

nextSong();

}

});

} catch (IOException e) {

Log.v(getString(R.string.app_name), e.getMessage());

}

}

private void nextSong() {

if (++currentPosition >= songs.size()) {

// Last song, just reset currentPosition

currentPosition = 0;

} else {

// Play next song

playSong(MEDIA_PATH + songs.get(currentPosition));

}

}

}

class Mp3Filter implements FilenameFilter {

public boolean accept(File dir, String name) {

return (name.endsWith(“.mp3″));

}

}

Import package-package yang diperlukan. Di Eclipse, arahkan ke class yang dibilang error, lalu pilih import <nama package>.

Lakukan proses build (Project à Build Project) agar layout dikenali disini.

Function onCreate() gunanya untuk menampilkan view daftarlagu yang sudah kita buat sebelumnya. Kemudian memanggil function updateDaftarLagu().

Function updateDaftarLagu()  gunanya untuk membaca semua file yang ada di SD Card sesuai filter yang telah didefinisikan sebelumnya (yaitu class MP3Filter). Setiap file lagu yang ditemukan, nama filenya disimpan di variable songs. Kemudian dibentuk ListAdapter yang datanya berasal dari variable songs dan layoutnya dari viewlagu yang sudah didefinisikan di atas.

Ketika item di ListView di-click maka program menjalankan function playSong().

Function playSong()  gunanya untuk memainkan file MP3. Terlebih dahulu object variable mp di reset(), kemudian di-set file data nya dengan setDataSource(), di prepare(), dan di start(). Ketika selesai memainkan suatu lagu, program menjalankan function nextSong(). Ini dilakukan pada function setOnCompleteListener().

Function nextSong()  gunanya untuk  memajukan index variable songs dan memainkan lagu pada index tersebut.

Class Mp3Filter gunanya untuk meng-accept() file hanya jika ber-extension MP3.

Membuat emulasi SD Card

Agar bias jalan seperti di device, kita perlu bikin SD Card di emulator. Masuk ke folder android-sdk/tools, dan jalankan.

./mksdcard 128M /tmp/sd.img

Selanjutnya masuk ke menu Eclipse Run à Run Configurations… Pilih nama project yaitu MP3Player.

Di Tab Target, tambahkan di bagian Additional Emulator Command Line Options: “–sdcard /tmp/sd.img”

Lalu klik Run disitu untuk menjalankan emulator.

Awalnya program menampilkan pesan “tidak ada lagu di SC Card”. Gimana cara mengisi SD Card dengan file MP3?

Masuk ke android-sdk/platform-tools, dan jalankan

Adb push <sumber> /mnt/sdcard

Misalnya

adb push /Users/akhmaddanielsembiring/Documents/etc/lagu/Gigi\ -\ 11\ Januari.mp3 /mnt/sdcard

Jalankan ulang program di emulator, hasilnya kira-kira seperti ini.

Pingin tau lebih detail tentang pemrograman Android? Koneksi ke server, web services, JSON, GPS, Mapping Google maps? Ikuti training Android di VITRAINING.

  • Share/Bookmark
Categories: Delphi Tags:

How to install Asterisk 1.6 on Ubuntu

August 13th, 2010 No comments

1. Required Packages

Install all the required packages:

$ apt-get install cvs build-essential automake autoconf bison flex libtool libncurses5-dev libssl-dev php5 php5-cli php5-curl php5-gd php5-mysql mysql-server php-pear php-db curl sox apache2 subversion libssl-dev libmysqlclient15-dev libxml2-dev

 

2. Compile and Install DAHDI Driver

Since we are going to use Digium TDM400 board, then we need to install DAHDI driver. First, get the system kernel name:

$ uname –r

This will results your kernel version number.

Install the kernel header according to your system kernel

$ apt-get install linux-headers-<version>

 

Create a symbolic link to /usr/src/linux-2.6

$ ln -s /usr/src/linux-headers-<version> /usr/src/linux-2.6

Read more…

  • Share/Bookmark
Categories: Delphi Tags:

Mengakses Active Directory dari Delphi

Agar bisa membuat, menghapus, memodifikasi user account Windows di Active Directory melalui Delphi kita perlu menggunakan ADSI (Active Directory Services Interface) dari Microsoft. ADSI sebetulnya tersedia di semua platform Win32, namun selain Windows 2000 keatas kita perlu download dulu dari http://www.microsoft.com/adsi.

Bahasan ADSI sangat kompleks. Pada tulisan ini cuma dibahas beberapa yang penting aja. ADSI adalah sejenis generic interface untuk directory services. Beberapa provider ADSI standard (COM yaitu interfaces yang dapat kita gunakan di program) adalah WinNT, IIS, LDAP dan NDS. Provider jenis WinNT dapat digunakan untuk membuat, modify user accounts, maupun groups (dan banyak hal lain lagi).

Read more…

  • Share/Bookmark

Delphi function to return any object type value

Perlu bikin function di Delphi yang return value-nya bukan integer, string, tapi Object, misalnya TStringList? Delphi bisa melakukan hal ini, tapi yang penting diingat adalah, object yang di-create secara manual, harus di-free secara manual pula, kalo nggak memory bakalan leak.

Ini caranya:

Read more…

  • Share/Bookmark
Categories: Delphi Tags: ,

HTTP Upload File dari Delphi

Delphi Tholos

Image via Wikipedia

Berikut ini function Delphi untuk melakukan upload file menggunakan protokol HTTP. Function ini bisa digunakan pada aplikasi yang memerlukan uploading data ke suatu aplikasi web untuk diproses lebih lanjut, misalnya untuk upload dan import data.

Read more…

  • Share/Bookmark
Categories: Delphi Tags: , ,

23. Advanced Delphi: Membuka form saat diperlukan

3. Membuka form saat diperlukan

  • Share/Bookmark
Categories: Delphi Tags:

22. Advanced Delphi: Exception Handling

2. Exception Handling

1. exception

2. try excep untuk menghindari kesalahan

3. nested exception

4. try finally

5. pada bagian initialization dan finalization

  • Share/Bookmark
Categories: Delphi Tags:

21. Advanced Delphi: DLL

 

1. DLL

1. Mengenal DLL

2. Membuat, memakai, memanggil DLL

3. Form dan DLL

4. Memanggil DLL dari bahasa lain, contoh Visual Basic

  • Share/Bookmark
Categories: Delphi Tags: ,

20. Membuat dan Menambah Komponen

 

Topik

 

1. OOP Lagi

2. Packages

3. Membuat Komponen baru dari komponen yang sudah ada

4. Memakai Komponen Baru

5. Instalasi Komponen dari Internet

6. Import komponen Active X

 
  • Share/Bookmark
Categories: Delphi Tags: ,

19. Membuat Help, Version Info, dan Splash Screen

 

Topik

 

1. Menuliskan isi help

2. Men-compile help

3. Membuat context help

4. Splash screen

5. Version info

 

  • Share/Bookmark
Categories: Delphi Tags:
This site uses a Hackadelic PlugIn, Hackadelic SEO Table Of Contents 1.6.0.