14

動画を録画してYouTubeやその他のソーシャルサイトにアップロードするアプリケーションを作成しています。

アップロードには、Droid 共有機能を使用していますが、うまく機能します。

電子メール、Facebook、Skype などでのアップロードは問題なく機能しますが、YouTube を選択するとビデオがアップロードされません。

これが私がビデオ共有に使用するコードです。

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"SUBJECT_NAME");
sharingIntent.setType("video/*");
File newFile = new File(video_path);
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,Uri.fromFile(newFile));
startActivity(Intent.createChooser(sharingIntent,"Where you want to share?"));
4

8 に答える 8

18

このコードを試してください。

ContentValues content = new ContentValues(4);
content.put(Video.VideoColumns.DATE_ADDED,
System.currentTimeMillis() / 1000);
content.put(Video.Media.MIME_TYPE, "video/mp4");
content.put(MediaStore.Video.Media.DATA, "video_path");
ContentResolver resolver = getBaseContext().getContentResolver();
Uri uri = resolver.insert(MediaStore.Video.Media.EXTERNAL_CONTENT_URI, content);

Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT,"Title");
sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM,uri);
startActivity(Intent.createChooser(sharingIntent,"share:")); 

このコードは、共有ボタンの onClick()メソッドに追加され、結果を取得します。EXTRA_STREAMの値をファイルではなくURIとして渡します。

于 2013-04-17T10:19:12.553 に答える
0

別の良い解決策は、アプリを終了せずに独自のアップロード メカニズムを実装することです。Google Java および Android ライブラリを YouTube Java ライブラリと一緒に使用できます。

これを利用した完全なアプリは次のとおりです: https://github.com/youtube/yt-direct-lite-android

于 2014-10-17T20:13:12.513 に答える
0
        ContentValues content = new ContentValues(4);
        content.put(MediaStore.Video.VideoColumns.DATE_ADDED,
                System.currentTimeMillis() / 1000);
        content.put(MediaStore.Video.Media.MIME_TYPE, "video/mp4");
        content.put(MediaStore.Video.Media.DATA, path);
        ContentResolver resolver = getActivity().getContentResolver();
        Uri uri1 =  Uri.fromFile(new File(path)); 

        Intent sharingIntent = new Intent(android.content.Intent.ACTION_SEND);
        sharingIntent.setType("video/*");
        sharingIntent.setPackage("com.google.android.youtube");
        sharingIntent.putExtra(Intent.EXTRA_TITLE, "Title");
        sharingIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Desc");
        sharingIntent.putExtra(android.content.Intent.EXTRA_STREAM, uri1);
        startActivity(Intent.createChooser(sharingIntent, "Share to"));
于 2020-11-12T19:44:54.533 に答える