2011-08-10 12 views
0

爲什麼我無法控制的GalaxyS三星視頻的大小,它總是在其他設備上的高解析度記錄它工作得很好Android的三星視頻EXTRA_SIZE_LIMIT 600K最大MMS

代碼示例:

Intent intent = new Intent(android.provider.MediaStore.ACTION_VIDEO_CAPTURE); 
          intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); 
          intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT, UiConstants.MAX_MMS_SIZE); 
          startActivityForResult(intent, NEW_VIDEO); 
          overridePendingTransition(0, 0); 

回答

1

像三星這樣的Android原始設備製造商可以(並且經常)修改相機應用程序以使用其設備上的相機。

所以,你的代碼是不工作的最可能的原因是因爲三星的版本默認的攝像頭應用程序的要麼不支持低分辨率的視頻捕捉,或者不正確地理解/處理MediaStore.EXTRA_SIZE_LIMIT。

我建議構建一個兼容性功能,檢查視頻的最終尺寸以去除並修剪您的彩信大小限制。

編輯:剛試過MediaStore.EXTRA_SIZE_LIMIT在幾個設備(包括三星和摩托羅拉OG機器人),並不能得到它的工作。不過,MediaStore.EXTRA_DURATION_LIMIT工作正常。

+0

那麼我們應該如何限制它在三星設備上? – meh

14

這將工作...

Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); 
intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT,10); //10 sec 
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT,12582912L); //12*1024*1024=12MiB 
startActivityForResult(intent, NEW_VIDEO); 
overridePendingTransition(0, 0); 

「L」是很重要的。它曾在我的三星手機

+4

爲什麼1048 * 1048而不是1024 * 1024? – zozelfelfo

+0

Woks對我來說,謝謝! – FireZenk

1
intent.putExtra(MediaStore.EXTRA_SIZE_LIMIT,"1048576"); //1048576=(1*1024*1024) 

我不得不把它作爲一個字符串以限制圖像尺寸