ورود

View Full Version : دوستان هر کی میتونه کمک کنه...



mrtzxxx
شنبه 17 اسفند 1392, 20:09 عصر
این کد واسه دانلوده ولی رو بعضی از گوشیها مثل galaxy sIII مشکل داره ولی با بعضی دیگه از گوشیها مخصوصا اندروید 2.3 هیچ مشکلی نداره و فایل رو دانلود میکنه اگه از دوستان عزیز کسی میدونه مشکل این کد چیه خواهش میکنم کمک کنه :

class DownloadFileFromURL extends AsyncTask<String, String, String>{

@SuppressWarnings("deprecation")
@Override
protected void onPreExecute() {
super.onPreExecute();
if (!cancel){
showDialog(progress_bar_type);
}
}
/**
* Downloading file in background thread
* */
@Override
protected String doInBackground(String... f_url) {
int count;
try {
URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();
conection.connect();
// getting file length
int lenghtOfFile = conection.getContentLength();
// input stream to read file - with 1024k buffer
InputStream input = new BufferedInputStream(url.openStream(), 1024);
// Output stream to write file
OutputStream output = new FileOutputStream(Environment.getExternalStorageDir ectory().toString()
+ "/baby/"+namefile);
byte data[] = new byte[1024];
long total = 0;
while ((!isCancelled() || (!cancel)) && (count = input.read(data)) != -1) {
total += count;
publishProgress(""+(int)((total*100)/lenghtOfFile));
// writing data to file
output.write(data, 0, count);
}
if (!isCancelled() || (!cancel)){
// flushing output
output.flush();
// closing streams
output.close();
input.close();
}
if (isCancelled() || (cancel)){
pDialog.dismiss();
pDialog = null;
DownloadFileFromURL.this.cancel(true);
pDialog.setProgress(0);
finish();
}
} catch (Exception e) {
// Log.e("ERROR MORTEZA moghe download : ", e.getMessage());
//Toast.makeText(getApplicationContext(), e.getMessage(), Toast.LENGTH_LONG).show();
}
return null;
}
/**
* Updating progress bar
* */
protected void onProgressUpdate(String... progress) {
// setting progress percentage
if (!isCancelled()|| !cancel){
pDialog.setProgress(Integer.parseInt(progress[0]));
}
}
/**
* After completing background task
* Dismiss the progress dialog
* **/
@SuppressWarnings("deprecation")
@Override
protected void onPostExecute(String file_url) {
if (!isCancelled()|| !cancel){
dismissDialog(progress_bar_type);
Toast.makeText(getApplicationContext(), " فایل با موفقیت دانلود شد ", Toast.LENGTH_SHORT).show();
start();
}
}


}

hamedjj
شنبه 17 اسفند 1392, 21:04 عصر
داخل [java] بزار که همش بیاد

smemamian
شنبه 17 اسفند 1392, 21:36 عصر
رو بعضی از گوشیها مثل galaxy sIII مشکل داره


دقیقاً چه مشکلی ؟ خطا ؟ فایل رو دانلود نمی کنه ؟ یا...

mrtzxxx
شنبه 17 اسفند 1392, 21:47 عصر
دقیقاً چه مشکلی ؟ خطا ؟ فایل رو دانلود نمی کنه ؟ یا...


یا ناقص دانلود میکنه و پخش میکنه نصفه - یا دانلود میکنه پخش نمیکنه ولی روی 2.3 یا 4.0.3 دانلود میکنه پخش هم میکنه ولی روی 4.1 اینکارو نمیکنه.

smemamian
شنبه 17 اسفند 1392, 22:10 عصر
بعداز اینکه فایل دانلود شد، یه وقفه 5 ثانیه ای برای پخش ایجاد کن.(مثلاً در 1 ثانیه فایل دانلود شده، در 6 ثانیه فایل رو شروع کنه به خوندن).

mrtzxxx
شنبه 17 اسفند 1392, 22:19 عصر
بعداز اینکه فایل دانلود شد، یه وقفه 5 ثانیه ای برای پخش ایجاد کن.(مثلاً در 1 ثانیه فایل دانلود شده، در 6 ثانیه فایل رو شروع کنه به خوندن).

ممنون استاد . این واسه پخش نکردنش واسه اینکه بعضی فایلها شروع به دانلود نمیکنه به نظرتون ایراد از سروره یا از کد؟ یا مهمتر از همه اینکه ناقص دانلود میکنه به نظرتون چی میتونه باشه؟

mrtzxxx
شنبه 17 اسفند 1392, 22:25 عصر
این فایل جاوا کاملشه گذاشتم گفتم شاید راهنماییتون کنه (http://s5.picofile.com/file/8116146126/Player.java.html)

smemamian
شنبه 17 اسفند 1392, 22:56 عصر
ممنون استاد . این واسه پخش نکردنش واسه اینکه بعضی فایلها شروع به دانلود نمیکنه به نظرتون ایراد از سروره یا از کد؟ یا مهمتر از همه اینکه ناقص دانلود میکنه به نظرتون چی میتونه باشه؟

اینترنت، سرور و.. مشکل از تمامی این ها می تونه باشه، ولی اگه زیاد مشکل توی دریافت داری، قسمت های مختلف کدت رو Log بذار تا بفهمی نقطه شکست برنامه کجاست.

mrtzxxx
شنبه 17 اسفند 1392, 23:38 عصر
اینترنت، سرور و.. مشکل از تمامی این ها می تونه باشه، ولی اگه زیاد مشکل توی دریافت داری، قسمت های مختلف کدت رو Log بذار تا بفهمی نقطه شکست برنامه کجاست.

با چند تا اینترنت جدا گانه چک کردم . سرور رو یه بار عوض کردم . فورس کلوز نمیده تا log بزارم. آیا طریقه دیگه ی دانلود به جز این روش هست برای فایل صوتی؟
جالب اینجاست که مثلا از 10 تا فایل 3 تا رو ناقص دو تا دانلود نمیکنه و بقیه مشکلی نداره . وقتی از برنامه میای بیرون دوباره وارد میشی همین شیوه اجرا میشه ولی نه با اون فایلها.!!!

smemamian
شنبه 17 اسفند 1392, 23:57 عصر
با چند تا اینترنت جدا گانه چک کردم . سرور رو یه بار عوض کردم . فورس کلوز نمیده تا log بزارم. آیا طریقه دیگه ی دانلود به جز این روش هست برای فایل صوتی؟
جالب اینجاست که مثلا از 10 تا فایل 3 تا رو ناقص دو تا دانلود نمیکنه و بقیه مشکلی نداره . وقتی از برنامه میای بیرون دوباره وارد میشی همین شیوه اجرا میشه ولی نه با اون فایلها.!!!

با فایل منیجر چرا کار نمی کنی ؟ (مشکلی که با فایل منیجر خواهی داشت اینکه که متد onPostExecute در AsyncTask سریعاً بعد از اینکه doInBackground فایل رو توی صف دانلود برد اجرا میشه ! - البته حل شدنی است این مساله.)

smemamian
یک شنبه 18 اسفند 1392, 00:01 صبح
از اونجایی که میگی هربار 2 بار به صورت متفاوت فایل ها مشکل دارند، پس مشکل از سرور نیست. مشکل از بافر کردن کدت هستش. حلقه while ایجاد مشکل می کنه.

mrtzxxx
یک شنبه 18 اسفند 1392, 10:08 صبح
با فایل منیجر چرا کار نمی کنی ؟ (مشکلی که با فایل منیجر خواهی داشت اینکه که متد onPostExecute در AsyncTask سریعاً بعد از اینکه doInBackground فایل رو توی صف دانلود برد اجرا میشه ! - البته حل شدنی است این مساله.)


با فایل منجیر کار نکردم اگر نمونه کدی چیزی دارین برام بذارین ممنون میشم . برای اینکه فایل سریعا اجرا نشه فکر میکنم اگر بعد از دانلود کاربر خودش پلی کنه این موضوع هم حل بشه.