Sabtu, 07 November 2015

Membuat Music Player pada terminal LINUX

Pada kesempatan kali ini saya akan membagi sebuah music player sederhana pada terminal linux, sebelumnya kita harus menginstall mpg123 dulu dengan mengetik pada terminal

sudo apt-get install mpg123

Agar music player kita memiliki fitur berupa play, pause, resume, dan stop, music player itu harus bisa mengerjakan beberapa perintah dalam suatu waktu yang sama. oleh karena itu kita membutuhkan Thread.

Thread adalah bagian kecil dari suatu proses yang bisa di jadwalkan oleh sistem operasi. ada beberapa macam thread, yaitu :

  1. Single Threading : Adalah sebuah proses yang hanya memiliki satu thread yang berjalan. Biasanya fungsi thread ini digunakan sebagai pengendali jalannya proses.
  2. Multi Threading : Adalah proses yang memiliki lebih dari satu thread yang berjalan didalamnya,sehingga dalam hal ini proses dapat menjalankan lebih dari satu tugas dalam satu waktu.
berikut contoh kode untuk music player dalam bahasa c
-------------------------------------------------------------------------


#include<stdio.h>
#include<string.h>
#include<pthread.h>
#include<stdlib.h>
#include<unistd.h>


pthread_t tid[10]; //membuat thread sejumlah array

int n; //menentukan timer

void* playandcount(void *arg){
pthread_t id=pthread_self(); // memanggil thread

if(pthread_equal(id,tid[1])){
system("clear"); //membersihkan layar
printf("\nHelp List\n");
printf("Press the below number to execute command\n");
printf("1 - (Show Help command)\n");
printf("2 - (Show playlist)\n");
printf("3 - (Play)\n");
printf("4 - (Pause after x sec)\n");
printf("5 - (Continue after x sec)\n");
printf("6 - (Stop after x sec)\n");
}
else if(pthread_equal(id,tid[2])){
system("clear");
system("ls | grep .mp3"); //menampilkan file mp3
}
else if(pthread_equal(id,tid[3])){
system("clear");
system("mpg123 lagu.mp3"); //memutar mp3
}
else if(pthread_equal(id, tid[4])){
system("clear");
sleep(n);
system("pkill -STOP mpg123"); //pause player
}
else if(pthread_equal(id, tid[5])){
system("clear");
sleep(n);
system("pkill -CONT mpg123"); //continue player
}
else if(pthread_equal(id,tid[6])){
system("clear");
sleep(n);
system("pkill mpg123"); //exit player
}
return NULL;
}

int main(void){
system("clear");
while(1){
int comm;
int err=0;
scanf("%d", &comm); //input command
if(comm==4 || comm==5 || comm==6)
scanf("%d", &n); //input timer
printf("\n\n");
if (err!=0)
printf("\ncan't create thread : [%s]", strerror(err));
else{
err=pthread_create(&(tid[comm]), NULL, &playandcount, NULL);
}
}
return 0;
}
-------------------------------------------------------------------------

untuk meng-compile program tersebut pada terminal

gcc player.c -lpthread -o play.o

selanjutnya untuk mengeksekusi program tersebut pada terminal

./play.o

Sekian yang dapat saya bagi pada kesempatan kali ini, semoga bermanfaat untuk anda, terima kasih karena telah meluangkan waktu anda untuk membaca :).

Tidak ada komentar:

Posting Komentar