-1
ビデオのリンクをGoogleドライブにアップロードして、ウェブブラウザでビデオを開くことができるようにする必要があります。ビデオファイルをGoogleドライブにアップロードし、次のコードを使用してファイルIDを取得することもできます:ドライブAPIを使用してアンドロイドでGoogleドライブにアップロードしたファイルのURLを取得するにはどうすればよいですか?
private void UploadFile(final DriveId driveId)
{
Drive.DriveApi.newDriveContents(mGoogleApiClient).setResultCallback(new ResultCallback<DriveApi.DriveContentsResult>() {
@Override
public void onResult(@NonNull DriveApi.DriveContentsResult driveContentsResult)
{
if (!driveContentsResult.getStatus().isSuccess())
{
Log.e(TAG, "Error while trying to create new file contents");
return;
}
OutputStream outputStream = driveContentsResult.getDriveContents().getOutputStream();
Toast.makeText(context, "Uploading to drive....", Toast.LENGTH_LONG).show();
final File theFile = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/VideoFiles/testVideo.mkv");
try
{
FileInputStream fileInputStream = new FileInputStream(theFile);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = fileInputStream.read(buffer)) != -1)
{
outputStream.write(buffer, 0, bytesRead);
}
} catch (IOException e1)
{
Log.i(TAG, "Unable to write file contents.");
}
MetadataChangeSet changeSet = new MetadataChangeSet.Builder().setTitle(theFile.getName()).setMimeType("video/mkv").setStarred(false).build();
DriveFolder folder = driveId.asDriveFolder();
folder.createFile(mGoogleApiClient, changeSet, driveContentsResult.getDriveContents()).setResultCallback(new ResultCallback<DriveFolder.DriveFileResult>() {
@Override
public void onResult(@NonNull DriveFolder.DriveFileResult driveFileResult)
{
if (!driveFileResult.getStatus().isSuccess())
{
Log.e(TAG, "Error while trying to create the file");
return;
}
Log.v(TAG, "Created a file: " + driveFileResult.getDriveFile().getDriveId());
}
});
}
});
}
私は次のコードを使用して動画のURLを取得しようとしました:任意の提案をしてください
DriveFile file = Drive.DriveApi.getFile(googleApiClient,driveId);
DriveResource.MetadataResult mdRslt = file.getMetadata(googleApiClient).await();
if (mdRslt != null && mdRslt.getStatus().isSuccess()) {
String link = mdRslt.getMetadata().getWebContentLink();
Log.d("LINK", link);
}
しかし、その後、私は、「シンボルを解決できませんしまった 'googleApiClient'
googleApiClient'が定義されていない 'ためです。コード内のどこにいても、あなたは 'mGoogleApiClient'を使用しているはずです。 –
リプレイのおかげで、私はdriveFileResult.getDriveFile()。getDriveId()から取得したファイルIDが完了していないことに気付きました: "DriveId:CAESABiwayCK16yy6VAoAA =="私がそれを正しければ、https://drive.google.com/......ファイルIDで始まったいくつかの文字列を追加してURLを構築することができます..... –
ここに手がかりがあります。コードに「ドライブへのアップロード....」と書かれていますが、GDAAを使用しているため、ドライブにアップロードしていません。あなたがやっていることは、ファイルをローカルに保存することだけです。あとでPlayサービスがファイルをドライブに同期します。 – pinoyyid