رفتن به مطلب

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


ارسال‌های توصیه شده

سلام،

توی یه پروژه ای به همین مورد برخوردم، قبلاً توی تاپیکی گفته شده بود از کتابخانه 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 هم میرم همه روکپی میکنم توی مموری و از روش شما استفاده میکنم 

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

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

  • 1 سال بعد...

سلام میگم کدی دارید که بشه مثل همین فیلم های آنلاین رو یک تصویر ازشون به نمایش گذاشت

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

بایگانی شده

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

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...