-1

Facebook へのアップロードの記事 を読みましたが、 uploadvideoの機能をどこで呼び出しますか..
Facebook SDK とサンプル プロジェクトをワークスペースにインポートしました。助けてください。コードを別の場所にコピーする必要がある場合は、コードを AsyncFacebookRunner クラスに追加しました。

これは、AsyncFacebookRunner クラスにコピーした私のコードです。

public  void uploadVideosFacebook(String videoPath) { 
            byte[] data = null;

    String dataMsg = "Video Desc.";
    String dataName="aaaassss.mp4";
    Bundle param;

    AsyncFacebookRunner mAsyncRunner = new   AsyncFacebookRunner(fb);
    InputStream is = null;
    try {
       is = new FileInputStream("/mnt/sdcard/aaaassss.mp4");
       data = readBytes(is); 

       param = new Bundle();
       param.putString("message", dataMsg);
       param.putString("filename", dataName);
       param.putByteArray("video", data);
       mAsyncRunner.request("me/videos", param, "POST", new fbRequestListener(), null);



    } catch (FileNotFoundException e) {
       e.printStackTrace();
    } catch (IOException e) {
       e.printStackTrace();
    }
}



public byte[] readBytes(InputStream inputStream) throws IOException {
      // this dynamically extends to take the bytes you read
      ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream();

      // this is storage overwritten on each iteration with bytes
      int bufferSize = 1024;
      byte[] buffer = new byte[bufferSize];

      // we need to know how may bytes were read to write them to the byteBuffer
      int len = 0;
      while ((len = inputStream.read(buffer)) != -1) {
        byteBuffer.write(buffer, 0, len);
      }

      // and then we can return your byte array.
      return byteBuffer.toByteArray();
}


public class fbRequestListener implements RequestListener {

    @Override
    public void onComplete(String response, Object state) {
        // TODO Auto-generated method stub
        Log.d("RESPONSE",""+response);

    }

    @Override
    public void onIOException(IOException e, Object state) {
        // TODO Auto-generated method stub
        Log.d("RESPONSE",""+e);

    }

    @Override
    public void onFileNotFoundException(FileNotFoundException e,
            Object state) {
        // TODO Auto-generated method stub
        Log.d("RESPONSE",""+e);

    }

    @Override
    public void onMalformedURLException(MalformedURLException e,
            Object state) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onFacebookError(FacebookError e, Object state) {
        // TODO Auto-generated method stub
        Log.d("RESPONSE",""+e);

    }

    }

これは、onclickを呼び出すときに使用するものです

public void onClick(View v) 
{
                  AsyncFacebookRunner.uploadVideosFacebook("/mnt/sdcard/aaaassss.mp4");
           }

これを実行すると、uploadVideosFacebook メソッドを static に変換する必要があるというエラーが表示されるため、関数を正しく呼び出すと、これが正しいとは思えません。

4

1 に答える 1

0

代わりに次の回答に従ってください: Facebook SDK を使用して、SD カードから Facebook に動画をアップロードできますか?

基本的に、パラメーターmessage 、 filename、およびdataでAsyncFacebookRunner を使用する必要があります。メッセージは動画に添える短いメッセージ、ファイル名はファイルの種類 (例: ".mp4")、データは動画をバイトに変換したものです。

AsyncFacebookRunner を使用して、これを「me/videos」に投稿します。

参照: https://developers.facebook.com/docs/reference/rest/video.upload/

于 2012-07-25T14:25:08.973 に答える