2012-02-12 67 views
1

我不知道是否有人知道如何使用android sdk在facebook上的墙上上传视频我搜索了很多,但没有代码适用于我。使用Android SDK将视频或图像上载到Facebook

我尝试了一个名为“Hackbook”的facebook android sdk示例来上传图片,但是我没有发现任何关于使用Android Sdk上传视频的详细教程!

所以如果有人知道如何通过一段代码或类似的东西来做到这一点,那将是非常好的。

谢谢你们。

+0

的可能重复[从SD卡给Facebook可能与Facebook的SDK上传视频?](http://facebook.stackoverflow.com/questions/6908413/is-uploading-videos-从一个SD卡到脸谱可能与Facebook的sdk) – 2012-02-12 17:48:56

+0

我读过之前,但感谢提示,我会尝试再次检查它:) – Adly 2012-02-13 12:17:33

+0

如果你只是想发布视频然后参考这个答案:http://stackoverflow.com/questions/10151708/upload-video-to-facebook-in-android/12470730#12470730 – 2012-12-28 05:41:40

回答

3
byte[] data = null; 
String dataPath = "/mnt/sdcard/KaraokeVideos/myvideo.3gp"; 
String dataMsg = "Your video description here."; 
Bundle param; 
facebook = new Facebook(FB_APP_ID); 
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook); 
InputStream is = null; 
try { 
    is = new FileInputStream(dataPath); 
    data = readBytes(is); 
    param = new Bundle(); 
    param.putString("message", dataMsg); 
    param.putByteArray("video", data); 
    mAsyncRunner.request("me/videos", param, "POST", new fbRequestListener(), null); 
} 
catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} 
catch (IOException e) { 
    e.printStackTrace(); 
} 
0
private void uploadVideo() { 
    try { 
     AccessToken accessToken = AccessToken.getCurrentAccessToken(); 
     String title = "My titles"; 
     String description = "My description"; 
     JSONObject jsonObject = new JSONObject(); 
     jsonObject.put("value", "EVERYONE"); 
     byte[] data = readBytes(reversedPath); 
     GraphRequest request = GraphRequest.newPostRequest(accessToken, "me/videos", null, this); 
     Bundle params = request.getParameters(); 
     params.putByteArray("video.mov", data); 
     params.putString("title", title); 
     params.putString("privacy", jsonObject.toString()); 
     params.putString("description", description); 
     params.putInt("file_size", data.length); 
     request.setParameters(params); 
     request.executeAsync(); 
     progressBarHorizonatl.setVisibility(View.VISIBLE); 
    } catch (JSONException | IOException e) { 
     e.printStackTrace();} 
    }} 


public byte[] readBytes(String dataPath) throws IOException { 
    InputStream inputStream = new FileInputStream(dataPath); 
    ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); 
    byte[] buffer = new byte[1024]; 
    int len; 
    while ((len = inputStream.read(buffer)) != -1) { 
     byteBuffer.write(buffer, 0, len); 
    } 
    return byteBuffer.toByteArray(); 
} 
+0

你的答案可能会使用一些解释的发布代码。这将有助于OP更了解您的解决方案。 :) – Markus 2017-09-06 11:03:43

相关问题