PDA

View Full Version : موزیک در asset



mahioo
پنج شنبه 13 شهریور 1393, 04:01 صبح
سلام
با چه کدی میشه مثلا یک موزیک رو از پوشه asset پخش کرد؟؟

harani
پنج شنبه 13 شهریور 1393, 09:28 صبح
موزیکتو بنداز تو پوشه res-raw (فرمتش بهتره از جنس mp3 یا gp3 باشه ) بعد تو گوگلم شرچ کن how to play mp3 in android

hasan_esfahan
یک شنبه 16 شهریور 1393, 11:36 صبح
AssetFileDescriptor afdesc = getAssets().openFd("googosh.mp3");
player = new MediaPlayer();
player.setDataSource(afdesc.getFileDescriptor(),af desc.getStartOffset(),afdesc.getLength());
player.prepare();
player.start();

mahioo
دوشنبه 17 شهریور 1393, 00:42 صبح
اشکال این کد چیه؟ اگه دوبار رو دکمه واسه پخش اهنگ اشتباه کلیک شه برنامه قطع میشه

package com.exabmple.hgh;

import java.io.IOException;


import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

MediaPlayer m = new MediaPlayer();
Button btn;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn=(Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {


music();
}
});
}

public void music(){


try {
AssetFileDescriptor descriptor = this.getAssets().openFd("music/aa.mp3");
m.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.setVolume(1f, 1f);
m.start();


} catch (IOException e) {


}

}


}

omid.n1990
دوشنبه 17 شهریور 1393, 01:56 صبح
چندبار نمیشه دستور رو تکرار کرد و دوباره تعریف کرد و اجرا بشه. کاری که باید انجام بدید اینه که یا دکمه اتون رو تغییر وضعیت بدید بعد از اولین کلیک تا پخش کامل اهنگ یا اینکه از دستور زیر قبل از فراخوانی استفاده کنید تا مطمئن بشید درحال اجرا نیست.


if (mediaPlayer.isPlaying())

saeed_g21
دوشنبه 17 شهریور 1393, 09:30 صبح
اشکال این کد چیه؟ اگه دوبار رو دکمه واسه پخش اهنگ اشتباه کلیک شه برنامه قطع میشه



میتونی وقتی دگمه یکبار کلیک شد دیگه دگمه رو غیر فعالش کنی تا دیگه کلیک نشه کرد یا اینکه میتونی تعریف کنی وقتی کلیک شد اول هرچی داره پخش میشه رو Stop کنه و از اول پخش بشه راه های هست که بایستی نسبت به سلیقه و برنامه خودتون انتخاب و استفاده نمایید

hasan_esfahan
دوشنبه 17 شهریور 1393, 11:03 صبح
ببین راه حل های زیادی وجود داره

دلیل این کد این هست که


MediaPlayer m = new MediaPlayer();








package com.exabmple.hgh;

import java.io.IOException;


import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.content.res.AssetFileDescriptor;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;


public class MainActivity extends Activity {

MediaPlayer m ;

Button btn;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

btn=(Button)findViewById(R.id.button1);

btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {


music();
}
});
}

public void music(){


try {
m = new MediaPlayer();


AssetFileDescriptor descriptor = this.getAssets().openFd("music/aa.mp3");
m.setDataSource(descriptor.getFileDescriptor(), descriptor.getStartOffset(), descriptor.getLength());
descriptor.close();
m.prepare();
m.setVolume(1f, 1f);
m.start();


} catch (IOException e) {


}

}


}

mahioo
دوشنبه 17 شهریور 1393, 13:05 عصر
مشکلم حل شد ممنون از همه مخصوصا اقای hasan_esfahan

saeed_g21
دوشنبه 17 شهریور 1393, 13:15 عصر
خطایی که در Logcat میگه رو بده

hasan_esfahan
دوشنبه 17 شهریور 1393, 13:39 عصر
تو این حالت 100 بار پشت سر هم که روی play بزنی باز هم از اول اجرا میشه .


MediaPlayer mp = new MediaPlayer();
public void playSound()
{
try
{
AssetFileDescriptor afd = mContext.getAssets().openFd("omid.mp3");
mp.reset();
mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getDeclaredLength());
mp.prepare();
mp.start();
afd.close();
}
catch(Exception e)
{

}
}