startActivityForResult (android.provider.MediaStore.ACTION_VIDEO_CAPTURE) никогда не возвращает результат - PullRequest
0 голосов
/ 25 августа 2010

Я хотел бы запустить Intent для захвата видео, который перезванивает мне с каким-то результатом. Пока что он правильно запускает приложение Camcorder по умолчанию для G1, но когда я заканчиваю запись видео в Camcorder, оно просто остается там (все еще в приложении Camcorder) вместо вызова моего метода onActivityResult ().

Это просто недостаток видеокамеры или есть специальный флаг или дополнительный, который я могу установить, чтобы он возвращал управление после завершения записи? В идеале это передало бы мне дескриптор видео - URI, InputStream, путь к файлу.

Код:

protected void launchRecordVideoActivity() {    
Intent intent = new Intent (android.provider.MediaStore.ACTION_VIDEO_CAPTURE);
startActivityForResult (intent, RequestCodes.RECORD_VIDEO);
}

RequestCodes - это мой собственный интерфейс, содержащий int-константы.

public void onActivityResult (int requestCode, int resultCode, Intent intent) {
    ...
}

Содержимое onActivityResult не имеет значения, потому что мое приложение вообще никогда не вызывается. onActivityResult не вызывается.

Есть предложения? Я также могу запечь запись видео прямо в приложении, но я бы предпочел не делать этого.

Ответы [ 2 ]

0 голосов
/ 22 ноября 2010

Тот же код отлично работает на SE x10 (обновлено до SDK 2.1). Начинается действие, пользователь начинает запись видео, а когда он нажимает «Стоп», в вызывающем классе запускается видео onActivityResult (). Возможно, это было исправлено в более поздних выпусках SDK.

0 голосов
/ 25 августа 2010

Вы не можете (обычно) вызывать startActivityForResult для намерения, которое запускает приложение вне вашего приложения

...