修剪已加载的视频

时间:2016-06-02 14:13:37

标签: android android-intent video trim

以下代码可帮助我将外部视频加载到videoView。当我单击一个按钮开始修剪加载视频的意图修剪意图启动但发送错误消息

  

无法播放此视频

提前感谢任何贡献......



 public void clickLoadVideoToView(View view)
    {
        Intent intent = new Intent();
        intent.setType("video/*");
        intent.setAction(Intent.ACTION_GET_CONTENT);
        startActivityForResult(Intent.createChooser(intent, "Complete action using"),PICK_FROM_GALLERY);

    }



    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == RESULT_OK) {
            if (requestCode == PICK_FROM_GALLERY)
            {
                selectedImageUri = data.getData();
                videoView.setVideoURI(selectedImageUri);
                videoView.start();
            }
        }
    }

    public void clickToTrimLoadedVideo(View view) {

        Intent trimVideoIntent = new Intent("com.android.camera.action.TRIM");
        trimVideoIntent.putExtra("media-item-path",pf.getRealPathFromURI_API19(MainActivity.this,selectedImageUri));
        trimVideoIntent.setData(selectedImageUri);
        List<ResolveInfo> list = getPackageManager().queryIntentActivities(trimVideoIntent, 0);
        if (null != list && list.size() > 0) {
            startActivity(trimVideoIntent); // Fires TrimVideo activity into being active
        }

    }
&#13;
&#13;
&#13;

以下是我用来获取已加载视频uri

的真实路径的类

&#13;
&#13;
public class pathFinder {

    @SuppressLint("NewApi")
    public static String getRealPathFromURI_API19(Context context, Uri uri){
        String filePath = "";
        String wholeID = DocumentsContract.getDocumentId(uri);

        // Split at colon, use second item in the array
        String id = wholeID.split(":")[1];

        String[] column = { MediaStore.Video.Media.DATA };

        // where id is equal to
        String sel = MediaStore.Video.Media._ID + "=?";

        Cursor cursor = context.getContentResolver().query(MediaStore.Video.Media.EXTERNAL_CONTENT_URI,
                column, sel, new String[]{ id }, null);

        int columnIndex = cursor.getColumnIndex(column[0]);

        if (cursor.moveToFirst()) {
            filePath = cursor.getString(columnIndex);
        }
        cursor.close();
        return filePath;
    }


    @SuppressLint("NewApi")
    public static String getRealPathFromURI_API11to18(Context context, Uri contentUri) {
        String[] proj = { MediaStore.Video.Media.DATA };
        String result = null;

        CursorLoader cursorLoader = new CursorLoader(
                context,
                contentUri, proj, null, null, null);
        Cursor cursor = cursorLoader.loadInBackground();

        if(cursor != null){
            int column_index =
                    cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
            cursor.moveToFirst();
            result = cursor.getString(column_index);
        }
        return result;
    }

    public static String getRealPathFromURI_BelowAPI11(Context context, Uri contentUri){
        String[] proj = { MediaStore.Video.Media.DATA };
        Cursor cursor = context.getContentResolver().query(contentUri, proj, null, null, null);
        int column_index
                = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATA);
        cursor.moveToFirst();
        return cursor.getString(column_index);
    }
}
&#13;
&#13;
&#13;

0 个答案:

没有答案