2011-11-03 14 views
13

Android'de verilen herhangi bir videonun çözünürlüğünü almanın bir yolunu arıyorum. Android'de desteklenenlerden başka formatlarla çalışmak zorunda kalmaz, ancak olsa harika olurdu. Bunu ben MediaPlayer sınıfını kullanarak istediklerini yapmak mümkün olduğunu düşünüyorumAndroid'de video çözünürlüğünü almak mümkün mü?

http://developer.android.com/guide/appendix/media-formats.html

, ama bu inanılmaz aptal ve verimsiz görünmektedir: Android desteklenen formatlar emin değilseniz, bu sayfayı bakınız. Ayrıca, nispeten'un hızlı bir şekilde olmasını istiyorum.

Android 3.0 + 'ı hedefliyorum, eğer bu bir fark yaratırsa. Honeycomb ayrıca Android 4.0'a kadar resmi olarak desteklenmese de .mkv dosyalarını desteklemektedir.

cevap

40

Video dosyasıyla ilgili çözünürlük bilgilerini almak için MediaMetadataRetriever'u kullanabilirsiniz. extractMetadata() yöntemini ve METADATA_KEY_VIDEO_HEIGHT ve METADATA_KEY_VIDEO_WIDTH sabitlerini kullanırsınız. API 10+ için

MediaMetadataRetriever metaRetriever = new MediaMetadataRetriever(); 
metaRetriever.setDataSource(/* file descriptor or file path goes here */); 
String height = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT); 
String width = metaRetriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH); 
+0

gibi içerik sağlayıcı sorgu

kullanabilirsiniz varsa! Daha önce bu sınıfı hiç duymadığımı düşünemiyorum. Çok teşekkürler! :) –

+4

Ön Petek için herhangi bir kolay yolu var mı? –

+0

MediaMetadataRetriever, API düzeyi gerektirir 14 – erdomester

3

Trick: Yani böyle bir şey yapmak istiyorum

MediaMetadataRetriever mRetriever = new MediaMetadataRetriever(); 
mRetriever.setDataSource("video_file_path"); 
Bitmap frame = mRetriever.getFrameAtTime(); 

int width = frame.getWidth(); 
int height = frame.getHeight(); 

Biz videodan rastgele çerçeveyi alıp genişliğini ve yüksekliğini tespit basittir.

0

Video İçerik URI o zaman da kesinlikle parlak görünüyor

Cursor mediaCursor = getContentResolver().query(
         videoContentURI, 
         {MediaStore.Video.Media.RESOLUTION}, null, null, null); 
     if (mediaCursor != null) { 
        if (mediaCursor.moveToFirst()) { 
     //The resolution of the video file, formatted as "XxY" 
     String resolution=mediaCursor.getString(mediaCursor 
            .getColumnIndex(MediaStore.Video.Media.RESOLUTION)); 
    } 
} 

You can check following post to get ContentURI from video Physical Path

İlgili konular