اطلاعیه

کاربر گرامی

به انجمن برنامه نویسی AnswerCenter.ir خوش آمدید

 برای استفاده از تمامی امکانات سایت لطفا در انجمن عضو شوید


پژمان نیکروان

گرفتن یک تصویر بند انگشتی(Thumbnail) از ویدیو - برای ساخت گالری

7 ارسال در این موضوع قرار دارد

سلام،

توی یه پروژه ای به همین مورد برخوردم، قبلاً توی تاپیکی گفته شده بود از کتابخانه MediaBrowser استفاده کنید... میشه اما اصلا عملکردش درست و بهینه نیست، چون نمیشه با دادن آدرس و نام فایل ویدیو ازش یه تصویر گرفت، باید میومدیم کل ویدیوهای گوشی رو لیست میکردیم و تازه اون ویدیو مورد نظرو نمیدونم باچی پیدا میکردیم و با استفاده از ID یک عکس از ویدیو میگرفتیم.

 

اما بااین روش با استفاده از یک تابع ساده در جاوا میتونیم یک Bitmap از تصویر بند انگشتی ویدیو بدست بیاریم:

 

تابع جاوا زیر رو ایجاد میکنیم زیر یکی از End sub ها در فضای خالی:

#if java
import android.graphics.Bitmap;
import android.provider.MediaStore.Video.Thumbnails;
import android.media.ThumbnailUtils;

	public Bitmap getThumbnail(String path){
		return ThumbnailUtils.createVideoThumbnail(path, Thumbnails.MICRO_KIND);
	}
#end if

و با استفاده از این کد عکس مورد نظر رو از ویدیو میگیریم:

	Dim j As JavaObject:j.InitializeContext
	Dim bitmap1 As Bitmap=j.RunMethod("getThumbnail",Array As Object(File.Combine(File.DirRootExternal,"video.mp4")))

مسیر ویدیو هم که مشخصه باید کجا داد...

bitmap1 هم همون تصویر بند انگشتی از ویدیو هست که میتونید هرجا دوس دارید نمایشش بدید.

 

کتابخانه JavaObject هم یادتون نره تیک بزنید.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام تشکر بابت کد 

ببخشید شاید سوال خیلی مبتدیانه باشه 

چه جوری ازش استفاده کنم؟ من bitmap رو برابر یه ایمج ویو قرار دادم فورس کلوز داد برنامه  (فک کنم اشتباه از منه:pardon:)

اینم کدهام + خطا

 

Capture.PNG

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 47 دقیقه قبل، ali.1020 گفته است :

چه جوری ازش استفاده کنم؟ من bitmap رو برابر یه ایمج ویو قرار دادم فورس کلوز داد برنامه  (فک کنم اشتباه از منه:pardon:)

سلام

قبل از j.RunMethod... که نوشتید پشتش bitmap1= بذارید.

bitmap1=j.runMethod

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 1 ساعت قبل، ali.1020 گفته است :

بفرمایید فرقی نکرد 

وقتی میگه bitmap رو اینشیالایز کنید، پس یعنی bitmap اصلا عکسی نداره، و از خط 43 ایراد گرفته.

دلیلشم اینه که نتونسته عکس از ویدیو بگیره، چون مسیرش Asset(پوشه Files) هست. ویدیو رو باید کپی کنید داخل حافظه خارجی بجز پوشه پروژه، یعنی File.DirRootExternal و بعد همون مسیر رو بدید.

اگه واقعا براتون ضرروریه که باید از پوشه files بخونید فیلم رو، من چک میکنم اگه راهی بود که ازاونجا هم قبول کنه پست اول رو ویرایش میکنم.

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
در 21 دقیقه قبل، پژمان نیکروان گفته است :

وقتی میگه bitmap رو اینشیالایز کنید، پس یعنی bitmap اصلا عکسی نداره، و از خط 43 ایراد گرفته.

دلیلشم اینه که نتونسته عکس از ویدیو بگیره، چون مسیرش Asset(پوشه Files) هست. ویدیو رو باید کپی کنید داخل حافظه خارجی بجز پوشه پروژه، یعنی File.DirRootExternal و بعد همون مسیر رو بدید.

اگه واقعا براتون ضرروریه که باید از پوشه files بخونید فیلم رو، من چک میکنم اگه راهی بود که ازاونجا هم قبول کنه پست اول رو ویرایش میکنم.

برای ویدیوهای داخل Asset هم میرم همه روکپی میکنم توی مموری و از روش شما استفاده میکنم 

اگر راهی پیدا کردید که چه بهتر اگر نه که فعلا با این ترفند سر میکنم 

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر