Janailson Silva 0 Denunciar post Postado Janeiro 22, 2013 Olá, Estou desenvolvendo um aplicativo, no qual o usuário fará um vídeo de no máximo 15 segundos e depois tem a possibilidade de enviar a um servidor onde outras pessoas que também use o aplicativo possa visualizar. Abaixo está meu código. private OnClickListener botao_Click = new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String arquivo = Environment.getExternalStorageDirectory() + "/" + System.currentTimeMillis() + ".3gp"; File file = new File(arquivo); Uri outputFileUri = Uri.fromFile(file); Intent intent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE); intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 0); intent.putExtra(MediaStore.EXTRA_DURATION_LIMIT, 15); startActivityForResult(intent, Constante.CODE_VIDEO); } }; @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == Constante.CODE_VIDEO) { if (resultCode != RESULT_OK) return; Toast.makeText(Videos.this, "Vídeo inserido com sucesso.", Toast.LENGTH_SHORT).show(); mostrarVideos(); } } Problema 1: Nos aparelhos LG, o limitador de tempo não funciona. Existe alguma forma de fazer funcionar? Problema 2: Em alguns modelos, ao direcionar o vídeo a ser salvo no SD, a câmera para de responder. Percebi que nos aparelhos que tem a versão do Android em 4.0.4, funciona corretamente. Abaixo disso, a câmera sempre trava. E seu eu direciono o vídeo para a memória interna do aparelho, funciona normalmente. Alguém já teve esse problema e conseguiu resolver? Meu aplicativo está configurado em. MinSDK: API 7 TargetSDK: API 17 BuildSDK: API 17 Compartilhar este post Link para o post Compartilhar em outros sites
Janailson Silva 0 Denunciar post Postado Janeiro 24, 2013 Resolvido. Pesquisando em alguns sites americanos, descobri que há problemas realmente em alguns modelos de celulares e que para resolver, basta alterar o "onActivityResult" para o que está abaixo. try { AssetFileDescriptor videoAsset = getContentResolver().openAssetFileDescriptor(data.getData(), "r"); FileInputStream fis = videoAsset.createInputStream(); File videoFile = new File(Environment.getExternalStorageDirectory(), "arquivo.mp4"); FileOutputStream fos = new FileOutputStream(videoFile); byte[] buffer = new byte[1024]; int length; while ((length = fis.read(buffer)) > 0) { fos.write(buffer, 0, length); } fos.close(); fis.close(); } catch (IOException e) { Log.e("IOException", e.toString()); } catch (Exception e) { Log.e("Exception", e.toString()); } Compartilhar este post Link para o post Compartilhar em outros sites