Android Audio Uygulama Örneği :MobileCoder I MobileCoder.NET I Mobil Programlama I Android Programlama I Mobil Geliştiricilerin Buluşma Noktası I www.MobileCoder.Net

Android Audio Uygulama Örneği

20.11.2015 tarihinde Diğer kategorisine eklenmiş, 533 views Kişi Okumuş ve 0 Yorum Yapılmış.

Android ses ve video dosyalarını oynatmanın kontrolünü birkaç şekilde sağlıyor. Bunlardan biride MediaPlayer sınıfı.

Bu sınıfın oynatabileceği dosya formatlarına linkten ulaşabilirsiniz.
http://developer.android.com/guide/appendix/media-formats.html#core

MediaPlayer sınıfını oluşturmak için aşağıdaki kodla işe başlayabiliriz:

MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.sarki_ismi);

İkinci iş olarak ‘res’ klasörü altında  ‘raw’ adıyla klasör açıyoruz. Çaldıracağımız ses dosyasını isminde boşluk içermeyecek bir şekilde raw klasörüne koyuyoruz.

MediaPlayer objesini bir kez yarattıktan sonra aşağıdaki metotlarla müziği başlatıp durdurabiliriz.

mediaPlayer.start();mediaPlayer.pause();

start() metodunu kullandığımızda müzik çalmaya başlıyacaktır. Eğer pause() metodundan sonra kullanırsak müzik kaldığı yerden devam edecektir. reset() metodu ise müziği baştan çaldırmayı sağlar.

mediaPlayer.reset();

Bu temel metotlardan başka daha iyi kontrol sağlamak için aşağıdaki metotlarda kullanılabilir.

Sr.No Metot & Tanımı
1 isPlaying()

Bu metot medyanın çalıp çalmaması durumunda true/false döndürür.

2 seekTo(positon)
Bu metot integer değer alır, medyayı aldığı değer olan saniyeye taşır.
3 getCurrentDuration()
Bu metot çalan medyanın anlık saniyesini geri döndürür.
4 getDuration()
Bu metot medyanın toplam süresini geri döndürür.
5 reset()
This method resets the media playerBu metot medyayı yeniden başlatır.
6 release()
This method releases any resource attached with MediaPlayer object
7 setVolume(float leftVolume, float rightVolume)
Bu metot oynatıcının ses ayarları içindir.
8 setDataSource(FileDescriptor fd)
Bu metot medya dosyasının kaynağını ayarlamayı sağlar.
9 selectTrack(int index)
Bu metot integer değer alır, aldığı değere göre listeden medyayı seçer.
10 getTrackInfo()
This method returns an array of track information

 

Uygulama Örneği

Burada MediaPlayer sınıfının kullanıldığı bir örnek paylaşıyorum. Örneğimiz müziği oynatıp durdurmayı, ileri, geri sarmayı içeren bir uygulama olacak.

İlk önce aşağıdaki adımları uygulamakla başlayın.

  • Android Studio’da yeni bir proje oluşturalım. Package ismini com.example.mediaplayer olarak ayarlayalım.

create_new_project_1

MainActivity.java dosyamıza bu kodları yerleştirelim.

 

MainAktivity_2
package com.example.mediaplayer;
import java.util.concurrent.TimeUnit;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

public TextView songName,startTimeField,endTimeField;
private MediaPlayer mediaPlayer;
private double startTime = 0;
private double finalTime = 0;
private Handler myHandler = new Handler();;
private int forwardTime = 5000;
private int backwardTime = 5000;
private SeekBar seekbar;
private ImageButton playButton,pauseButton;
public static int oneTimeOnly = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
songName = (TextView)findViewById(R.id.textView4);
startTimeField =(TextView)findViewById(R.id.textView1);
endTimeField =(TextView)findViewById(R.id.textView2);
seekbar = (SeekBar)findViewById(R.id.seekBar1);
playButton = (ImageButton)findViewById(R.id.imageButton1);
pauseButton = (ImageButton)findViewById(R.id.imageButton2);
songName.setText(“song.mp3”);
mediaPlayer = MediaPlayer.create(this, R.raw.song);
seekbar.setClickable(false);
pauseButton.setEnabled(false);

}

public void play(View view){
Toast.makeText(getApplicationContext(), “Playing sound”,
Toast.LENGTH_SHORT).show();
mediaPlayer.start();
finalTime = mediaPlayer.getDuration();
startTime = mediaPlayer.getCurrentPosition();
if(oneTimeOnly == 0){
seekbar.setMax((int) finalTime);
oneTimeOnly = 1;
}

endTimeField.setText(String.format(“%d min, %d sec”,
TimeUnit.MILLISECONDS.toMinutes((long) finalTime),
TimeUnit.MILLISECONDS.toSeconds((long) finalTime) –
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) finalTime)))
);
startTimeField.setText(String.format(“%d min, %d sec”,
TimeUnit.MILLISECONDS.toMinutes((long) startTime),
TimeUnit.MILLISECONDS.toSeconds((long) startTime) –
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) startTime)))
);
seekbar.setProgress((int)startTime);
myHandler.postDelayed(UpdateSongTime,100);
pauseButton.setEnabled(true);
playButton.setEnabled(false);
}

private Runnable UpdateSongTime = new Runnable() {
public void run() {
startTime = mediaPlayer.getCurrentPosition();
startTimeField.setText(String.format(“%d min, %d sec”,
TimeUnit.MILLISECONDS.toMinutes((long) startTime),
TimeUnit.MILLISECONDS.toSeconds((long) startTime) –
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.
toMinutes((long) startTime)))
);
seekbar.setProgress((int)startTime);
myHandler.postDelayed(this, 100);
}
};
public void pause(View view){
Toast.makeText(getApplicationContext(), “Pausing sound”,
Toast.LENGTH_SHORT).show();

mediaPlayer.pause();
pauseButton.setEnabled(false);
playButton.setEnabled(true);
}

public void forward(View view){
int temp = (int)startTime;
if((temp+forwardTime)<=finalTime){ startTime = startTime + forwardTime; mediaPlayer.seekTo((int) startTime); } else{ Toast.makeText(getApplicationContext(), “Cannot jump forward 5 seconds”, Toast.LENGTH_SHORT).show(); } } public void rewind(View view){ int temp = (int)startTime; if((temp-backwardTime)>0){
startTime = startTime – backwardTime;
mediaPlayer.seekTo((int) startTime);
}
else{
Toast.makeText(getApplicationContext(),
“Cannot jump backward 5 seconds”,
Toast.LENGTH_SHORT).show();
}

}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}

}
activity_main.xml dosyası için kodlar,

activity_main_3

string.xml dosyası için kodlar,

string_4

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

<resources>

 

<string name=”app_name”>MediaPlayer</string>

<string name=”action_settings”>Settings</string>

<string name=”hello_world”>Şimdi Çalan:</string>

<string name=”inital_Time”>0 min, 0 sec</string>

 

</resources>

AndroidManifest.xml dosyası için,

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

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

package=”com.example.mediaplayer”

android:versionCode=”1″

android:versionName=”1.0″ >

 

<uses-sdk

android:minSdkVersion=”8″

android:targetSdkVersion=”17″ />

 

<application

android:allowBackup=”true”

android:icon=”@mipmap/ic_launcher”

android:label=”@string/app_name”

android:theme=”@style/AppTheme” >

<activity

android:name=”com.example.mediaplayer.MainActivity”

android:label=”@string/app_name” >

<intent-filter>

<action android:name=”android.intent.action.MAIN” />

 

<category android:name=”android.intent.category.LAUNCHER” />

</intent-filter>

</activity>

</application>

</manifest>

 

Son olarak örneğimizin çalışan görüntüsü,

Uygulama_gorunutusu_5

Kaynak:
http://www.tutorialspoint.com/android/android_mediaplayer.htm

Dilek KIRDAŞ

 

İlgili Terimler :
Yazar Hakkında

Yazar : dilekirdas

Yazar Hakkında :

Yazarın Tüm Yazıları İçin Tıklayınız

Yorumlar

Sitemizde En Çok Okunan İçerikler

ANDROİD TELEFONLARA ROOT ATMA
ANDROİD TELEFONLARA ROOT ATMARoot Ne demek ? Bir android cihazı root etmek telefonun
fragment
ANDROİD FRAGMENT YAPISI VE KULLANIMIFragmentler Activity içerisinde yer alan kullanıcı ara yüzleridir. Fragment
Asp.NET’de web servis hazırlama ve Android de kullanimi  Web Servis Nedir ? Web üzerinden HTTP protokolü ile hizmet
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞME
ANDROİD TELEFONLARDA KONFERANS GÖRÜŞMEANDROİD TELEFONLARDA KONFERANS GÖRÜŞME   Konferans görüşme çok fazla bilinmeyen androidin

Sitemizde En Çok Yorumlanan İçerikler

WEB UYGULAMALARINDA EKRAN UYUMU
WEB UYGULAMALARINDA EKRAN UYUMUAndroid için web uygulamaları hazırlarken odaklanmamız gereken en önemli
ActionBar Kullanım Özellikleri
ActionBar Kullanım ÖzellikleriActionBar Genel Bakış ActionBar temel olarak 4 ana işlevsel alan barındırır.

Son Yapılan Yorumlar

  • Kategoriler

  • Son Yazılar

  • Takvim

    Haziran 2017
    P S Ç P C C P
    « Kas    
     1234
    567891011
    12131415161718
    19202122232425
    2627282930  
  • Etiketler

  • Son Yorumlar

    • Arşivler

    • Meta