2015-08-25 159 views
2

我遇到媒體記錄器的一些問題。Mediarecorder視頻大小問題

我試圖在320x480視頻大小/分辨率下錄製,但每當我嘗試這樣做時,都會給我無效的大小錯誤。 1920 x 1080工作得很好。

Mediarecorder代碼:

setRecordingSize(); 

    mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC); 
    mediaRecorder.setVideoSource(MediaRecorder.VideoSource.SURFACE); 
    mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4); 
    mediaRecorder.setVideoSize(RECORD_WIDTH, RECORD_HEIGHT); 
    mediaRecorder.setVideoEncoder(MediaRecorder.VideoEncoder.H264); 
    mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB); 
    mediaRecorder.setVideoEncodingBitRate(8 * 1000000); 
    mediaRecorder.setVideoFrameRate(30); 

集記錄尺寸方法:

String values = getPreferenceListPreferenceString("VIDEO_RESOLUTION", "1920 x 1080 (phone/tablet)"); 

    if(values == "2560 x 1600 (tablet)") 
    { 
     setRecordSize(2560, 1600); 
     return; 
    } 

    if(values == "2560 x 1440 (tablet)") 
    { 
     setRecordSize(2560, 1440); 
     return; 
    } 

    if(values == "2048 x 1536 (tablet)") 
    { 
     setRecordSize(2048, 1536); 
     return; 
    } 

    if(values == "1920 x 1080 (phone/tablet)") 
    { 
     setRecordSize(1920, 1080); 
     return; 
    } 

    if(values == "1280 x 800 (tablet)") 
    { 
     setRecordSize(1280, 800); 
     return; 
    } 

    if(values == "1280 x 720 (phone)") 
    { 
     setRecordSize(1280, 720); 
     return; 
    } 

    if(values == "1024 x 600 (tablet)") 
    { 
     setRecordSize(1024, 600); 
     return; 
    } 

    if(values == "540 x 960 (phone)") 
    { 
     setRecordSize(540, 960); 
     return; 
    } 

    if(values == "480 x 854 (phone)") 
    { 
     setRecordSize(480, 854); 
     return; 
    } 

    if(values == "480 x 800 (phone)") 
    { 
     setRecordSize(480, 800); 
     return; 
    } 

    if(values == "320 x 480 (phone)") 
    { 
     setRecordSize(320, 480); 
     return; 
    } 

    Toast.makeText(this, "ERROR, VALUES: " + values, Toast.LENGTH_LONG).show(); 

集合記錄尺寸方法:

public void setRecordSize(int width, int height) 
{ 
    RECORD_WIDTH = width; 

    RECORD_HEIGHT = height; 
} 

我無法找到問題應該很好地工作。

感謝您的幫助! :)

回答

0

這是MediaRecorder不支持320x480分辨率的好機會。您可以嘗試解析/system/etc/media_profiles.xml以獲取支持的解決方案列表(儘管此文件在某些​​有問題的設備上不存在)。

+0

好的,謝謝。 – YOYOYO