Подготовка медиа-устройства Android не удалась - PullRequest
1 голос
/ 17 марта 2012
sock = new Socket();
sock.connect(new InetSocketAddress(addr, port), 2000);
if(!sock.isConnected()) return false;

file = ParcelFileDescriptor.fromSocket(sock);

camera = Camera.open();
if(camera == null) return false;
camera.unlock();

recorder = new MediaRecorder();
recorder.setCamera(camera);
recorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);
recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
recorder.setOutputFile(file.getFileDescriptor());
recorder.setPreviewDisplay(preview.getHolder().getSurface());// SurfaceView preview

recorder.prepare();

Manifest:

uses-permission android:name="android.permission.INTERNET"
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"
uses-permission android:name="android.permission.CAMERA"
uses-permission android:name="android.permission.RECORD_AUDIO"
uses-feature android:name="android.hardware.camera"

Я всегда получаю ошибку prepare failed: -1.

Этот код для Android> 2.2, протестирован на Samsung Galaxy S2

1 Ответ

0 голосов
/ 21 апреля 2012

Снимите ядро ​​-

recorder.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));

И установите его -

recorder.setAudioSource(MediaRecorder.AudioSource.DEFAULT);
...