2015-08-25 10 views
2

У меня возникают некоторые проблемы с mediarecorder.Проблема с видеорекордом 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