View Full Version : پخش اهنگ از روی سرور
mohammadreza761
شنبه 19 بهمن 1392, 21:56 عصر
سلام .
میخواستم بدونم چجوری میشه از روی سرور توی اندروید اهنگ پخش کرد .
اهنگ ها مثلا تو پوشه http://localhost/songs/example.mp3 ro example.ogg هست .
ممنون .
ghader62
یک شنبه 20 بهمن 1392, 07:57 صبح
سلام
public void audioPlayer(String path, String fileName) {
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(path + "/" + fileName);
}
catch (IllegalArgumentException e) {
e.printStackTrace();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
try {
mp.prepare();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
mp.start();
}
kavous_kiani
پنج شنبه 24 بهمن 1392, 15:16 عصر
آدرس سایت و نام آهنگ را در کدام قسمت، و دقیقاً به چه صورت وارد کنیم؟
آیا باید پلیر را در درون صفحه خودمان قرار دهیم؟
پیام خطا می دهد که : آیدیو پلیر نباید تایپ ووید داشته باشد.
با تشکر
M0TR!X
پنج شنبه 24 بهمن 1392, 15:27 عصر
خط پنجم رو ببنید.بجای path مسیر فایل و به جای filename نام فایل
kavous_kiani
جمعه 25 بهمن 1392, 17:06 عصر
خواهش می کنم یک نمونه با آدرس و نام فایل بنویسید.
لطفاً به این دو سوال من هم پاسخ بدهید.
1. آیا باید پلیر را در درون صفحه خودمان قرار دهیم؟
2. پیام خطا می دهد که : آیدیو پلیر نباید تایپ ووید داشته باشد.
ممنون
ghader62
جمعه 25 بهمن 1392, 19:03 عصر
سلام دوست عزیز
یک پروژه جدید بساز و اکتیویتی رو بصورت زیر تغییر بده
public class OnlinePlayActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
audioPlayer();
}
public void audioPlayer() {
String path = "http://www.gandroid.ir/musics";
String fileName = "navaye1.mp3";
MediaPlayer mp = new MediaPlayer();
try {
mp.setDataSource(path + "/" + fileName);
}
catch (IllegalArgumentException e) {
e.printStackTrace();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
try {
mp.prepare();
}
catch (IllegalStateException e) {
e.printStackTrace();
}
catch (IOException e) {
e.printStackTrace();
}
mp.start();
}
}
و سپس در داخل فایل منیفست ، کد زیر رو اضافه کن
<uses-permission android:name="android.permission.INTERNET" />
فقط توجه کن که سمت سرور فایل با نام گفته شده را قرار داده باشی.
اگه مراحل رو درست رفته باشی مطمئنا برنامه اجرا خواهد شد مگر اینکه مشکل از جای دیگه ای باشه
و اما درباره دو سوالتون
1- نخیر نیازی نیست که پلیر قرار بدید(من ساده ترین حالت رو قرار دادم ولی شما میتونید که پلیر هم قرار بدید)
2- متوجه منظورتون نشدم «تایپ ووید؟؟؟؟»
kavous_kiani
دوشنبه 28 بهمن 1392, 11:58 صبح
با تشکر از شما دوست گرامی.
وقتی کد قبلی شما را قرار دادم:
در این کد :
public void audioPlayer(String path, String fileName) {
MediaPlayer mp = new MediaPlayer();
این خطا را اعلام کرد :
void is an invalid type for the variable audioPlayer
با تشکر
kavous_kiani
دوشنبه 28 بهمن 1392, 12:04 عصر
با تشکر
این کد جدید خطا نمی دهد.
به خاطر فقدان این کد اخطار می داد:
audioPlayer();
ممنون
مدیر گرامی انجمن : دکمه های قرار دادن کد برای من کار نمی کند. برای همین کدها را در داخل کانتینر کد قرار ندادم. نمی دانم ویرایشگر ایراد دارد، یا مشکل از من است.
kavous_kiani
دوشنبه 28 بهمن 1392, 12:19 عصر
دوست عزیز!
آهنگ با موفقیت از سرور پخش می شود.
اما در میانه آهنگ به طور موقت و برای چند ثانیه آهنگ قطع شد، و با شروع دوباره، در یک زمان دو آهنگ پخش می شود. گویا پروسه جدید، بدون کشتن پروسه قبلی، شروع به کار کرده است، در این موارد باید چه کدی را گذاشت که دو آهنگ همزمان پخش نشود؟
ممنون
ghader62
دوشنبه 28 بهمن 1392, 12:41 عصر
درسته دوست عزیز
در این متد، ساده ترین روش پیاده سازی شده است
و فکر نمیکنم بدین صورت بشه در برنامه ها استفاده کرد و بسته به برنامه تون باید کدهای زیادی به برنامه تون اضافه کنید برای مثال بهتره این متد در داخل یک ترد فراخوانی بشه و در مورد شروع پروسه جدید میتونی از کدهای زیر استفاده کنی
@Override
protected void onPause() {
super.onPause();
stopPlayer();
if ((threadMusic != null) && (threadMusic.isAlive())) {
threadMusic.interrupt();
threadMusic = null;
}
}
private void stopPlayer() {
if (mediaPlayer != null) {
if (mediaPlayer.isPlaying()) {
mediaController.hide();
mediaPlayer.stop();
}
mediaPlayer.release();
mediaPlayer = null;
}
}
threadMusic از جنس ترد هستش و این متد موقع پاز شدن برنامه اجرا میشود
و جای کار برای بهتر کردن کد زیاد هستش
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.