0

AndroidアプリでVimeo Networking Libraryを使用して、Vimeoの公式ライブラリを使用してVideo Viewでビデオを再生しました。

トークンで API を認証します

コードの問題は、 videoFilesのnull値が返されることです。コードコメントの間に下記のb形式でリンクを付けると

これが私のコードです

public class PlayActivity extends AppCompatActivity {

    VideoView videoView;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_play);

        videoView = findViewById(R.id.player);
// Getting access Token

        String accessToken = getString(R.string.access_token);
        Configuration.Builder configBuilder = new Configuration.Builder(accessToken)
                .enableCertPinning(false);
//Vimeo Client autenticated

        VimeoClient.initialize(configBuilder.build());
// the video uri; if you have a video, this is video.uri

どの URI を渡せばいいのかわからないので 2 形式で URI を渡します

a) https://player.vimeo.com/videos/123456789

失敗メソッドからエラーがスローされます

I/TAG5: Vimeo エラー: JsonReader.setLenient(true) を使用して、行 1 列 1 パス $ で不正な形式の JSON を受け入れます

b) https://player.vimeo.com/videos/123456789/config

I/TAG1: ビデオ: com.vimeo.networking.model.Video@0 I/TAG2: VideoFiles null

最後にリンクbを使用します

    final String uri = "https://player.vimeo.com/videos/123456789/config"; 
    GsonDeserializer gsonDeserializer = new GsonDeserializer();
    VimeoClient.getInstance().fetchNetworkContent(uri, new ModelCallback<Video>(Video.class) {
        @Override
        public void success(Video video) {
            Toast.makeText(PlayActivity.this, "Sucessful" + video, Toast.LENGTH_SHORT).show();
            Log.i("TAG1", "Video: " + video);


            ArrayList<VideoFile> videoFiles = video.files;
            Log.i("TAG2", "VideoFiles " + videoFiles);
// I am getting null Value of **videoFiles** and it's not passing the if block with link b above mentioned 

            if (videoFiles != null && !videoFiles.isEmpty()) {
                VideoFile videoFile = videoFiles.get(0); // you could sort these files by size, fps, width/height
                Log.i("TAG3", "VideoFiles " + videoFiles);
                String link = videoFile.getLink();
                Log.i("TAG4", "link " + link);
                // load link
                MediaController mediaController = new MediaController(PlayActivity.this);
                mediaController.setAnchorView(videoView);

                videoView.setVisibility(View.VISIBLE);
                videoView.setVideoURI(Uri.parse(link));
                videoView.setMediaController(null);
                videoView.requestFocus();
                videoView.start();
            }
        }

        @Override
        public void failure(VimeoError error) {

            Log.i("TAG5", "vimeo error  : " + error.getErrorMessage());
            Toast.makeText(PlayActivity.this, "failure due to " + error.getErrorMessage(), Toast.LENGTH_SHORT).show();

        }
    });
}
}
4

1 に答える 1