PDA

View Full Version : خواندن آدرس فایل ویدیویی از پوشه raw



Raminab
سه شنبه 09 تیر 1394, 17:41 عصر
سلام دوستان

میخوام آدرس یه ویدیو رو که توی پوشه raw هستش بدست بیارم برای این کار از کد زیر استفاده کردم :

String video = "android.resource://" + getPackageName() + "/" + R.raw.help;


ولی فایلو نمیتونه پیدا کنه و وارد FileNotFoundException میشه

همچنین از کد

Uri video = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.aaaaaa);


استفاده کردم و بعد تبدیلش کردم به String ولی بازم جواب نداد :(

باید آدرسشو داشته باشم که به صورت فایل بدمش به Constructor

Raminab
سه شنبه 09 تیر 1394, 20:12 عصر
این کد منه که مربوط به ادغام کردن ی video با ی audio است . اون قسمت که کامنت کردم رو اجرا کردم و درست اجرا شد و video پخش شد ولی تو کد اصلی وقتی میره توی بلاک try از اولین خط میچره توی بلاک FileNotFoundException

ممنون میشم اگه اطلاعاتی دارید کمک کنید


String baseDir = Environment.getExternalStorageDirectory().getAbsol utePath();

String video = "android.resource://" + getPackageName() + "/" + R.raw.aaaaaa;
String audio = "android.resource://" + getPackageName() + "/" + R.raw.ermia;
/*
VideoView view = (VideoView)findViewById(R.id.vv);
String path = "android.resource://" + getPackageName() + "/" + R.raw.aaaaaa;
view.setVideoURI(Uri.parse(path));
view.start();
*/
try
{
H264TrackImpl mp4 = new H264TrackImpl(new FileDataSourceImpl(video));
AACTrackImpl mp3 = new AACTrackImpl(new FileDataSourceImpl(audio));
////
Movie movie = new Movie();
movie.addTrack(mp4);
movie.addTrack(mp3);
Container con = new DefaultMp4Builder().build(movie);

@SuppressWarnings("resource")
FileChannel fc = new FileOutputStream(new File(baseDir+"/ramin.mp4")).getChannel();
con.writeContainer(fc);
fc.close();
tv.setText("OK");

} catch (FileNotFoundException e)
{
Toast toast = Toast.makeText(this, "File: not found!", Toast.LENGTH_LONG);
toast.show();
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Raminab
چهارشنبه 10 تیر 1394, 11:33 صبح
از ی روش دیگه هم نوشتم دقیقا همین مشکل رو داشت :( کسی نمیدونه ایراد ممکنه کجای کار باشه ؟ حتی حدسم بزنید خوبه و خودم میرم ببینم اون مشکل که شما میکید رو داره یا نه. چه ایرادایی ممکنه داشته باشه که FileNotFoundException بده ؟ چون من فقط میدونم اگه فایل وجود نداشته باشه یا آدرس اشتباه بدیم این نوع exception رخ میده!

tux-world
پنج شنبه 11 تیر 1394, 02:55 صبح
محتوای متغیر video و audio چیه؟ اینجا به مشکل میخورید. خروجی رو تست کنید ببینید درسته یا نه

Raminab
پنج شنبه 11 تیر 1394, 08:38 صبح
video محتواش mp4 هست که با h264 کدش کردم (حالت عادی هم استفاده کردم جواب نداد)
خروجی هم اصلا تولید نمیشه که,چون تو این

H264TrackImpl mp4 = new H264TrackImpl(new FileDataSourceImpl(video));


خط FIleNotFoundException میده

نمونه ای که تو داکیومنتش پیدا کردم اینه :
https://github.com/sannies/mp4parser
و ی نمونه هم توی stackoverflow :
http://stackoverflow.com/questions/29474629/merge-audio-file-with-captured-video-in-android

از دو روش هم دقیقا همین مشکل رو دارم

tux-world
پنج شنبه 11 تیر 1394, 09:10 صبح
خطای FIleNotFoundException یعنی اینکه این فایل پیدا نشد. فقط با تریس کردن میتونید عامل این خطا رو پیدا کنید

Raminab
پنج شنبه 11 تیر 1394, 09:33 صبح
تریس کردم که فهمیدم اونجا مشکل داره! اون قسمتی که کامنت گرفتم رو به تنهایی اجرا کردم و ویدیو به صورت کامل و بدون ایراد اجرا شد, با همون آدرس . به خاطر همین نمیفهمم مشکلش از کجا میتونه باشه

tux-world
پنج شنبه 11 تیر 1394, 13:29 عصر
خیلی خوب شد. تشکر یادتون نره :چشمک: