gpt4 book ai didi

android - 在安卓原生应用中实现 Brightcove 播放器

转载 作者:行者123 更新时间:2023-11-29 22:01:21 25 4
gpt4 key购买 nike

我只想在 android.i 中实现 Brightcove 播放器

http://support.brightcove.com/en/docs/accessing-video-content-media-api

http://support.brightcove.com/en/docs/best-practices-android-app-development

从那里,我得到的视频 url 为“http://api.brightcove.com/services/library?command=find_video_by_id&video_id=1520880903001&video_fields=name,length,FLVURL&media_delivery=http&token=jskS1rEtQHy9exQKoc14IcMq8v5x2gCP6yaB7d0hraRtO__6HUuxMg ..”

我在 videocloud 上获得了特定视频的 VideoId、Video_fields。我只想使用 android 原生应用中 brightcove 播放器上的这些信息播放该视频。

我的代码:

private static final String MyApiToken = "我的 token "; private ReadAPI mReadAPI = new ReadAPI(MyApiToken); 私有(private) com.brightcove.mobile.mediaapi.model.Video pVideo;

/** Called when the activity is first created. */
@Override

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(
WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.main);

makeAPICall();

}

私有(private)无效 makeAPICall() {

    Log.d("Sample", "Beginning makeAPICall");
EnumSet<VideoFieldEnum> videoFields = VideoFieldEnum.createEmptyEnumSet();
videoFields.add(VideoFieldEnum.NAME);
videoFields.add(VideoFieldEnum.LENGTH);
videoFields.add(VideoFieldEnum.FLVURL);

try {
long videoId =My videoId;
pVideo = mReadAPI.findVideoById(videoId, videoFields, null);
} catch(Exception e) {
String msg = e.getMessage();
Log.e("Sample", msg);
}

//Create the player
BCPlayerView mPlayer;
mPlayer = (BCPlayerView) findViewById(R.id.player);

mPlayer.load(pVideo);
mPlayer.start();
}

我还添加了像 bc-android-mediapi.jar 和 bc-android-player.jar 这样的库 jar。当我尝试运行时,我看到了黑屏,视频播放器 Controller 可见。但是视频没有播放。任何我需要进一步包括吗?

谢谢。

最佳答案

我知道这是一篇旧帖子,但我在搜索相同答案时偶然发现了它。

我是这样解决的:

  1. 确保您的应用具有访问互联网的权限

     <uses-permission android:name="android.permission.INTERNET"/>
  2. 将读取 API token key 与 URL 访问 (How to get this token) 结合使用

  3. 强制媒体传输类型为 H264

     theReadAPI.setMediaDeliveryType(MediaDeliveryTypeEnum.HTTP);    

希望这可以帮助其他遇到此库问题的人。这是我的完整代码示例:

    Logger mAPILogger = Logger.getLogger("BCAndroidAPILogger");
ReadAPI theReadAPI = new ReadAPI("read with URL Access token");
theReadAPI.setMediaDeliveryType(MediaDeliveryTypeEnum.HTTP);
theReadAPI.setLogger(mAPILogger);

EnumSet<VideoFieldEnum> videoFields = VideoFieldEnum
.createEmptyEnumSet();
videoFields.add(VideoFieldEnum.ID);
videoFields.add(VideoFieldEnum.NAME);
videoFields.add(VideoFieldEnum.LENGTH);
videoFields.add(VideoFieldEnum.RENDITIONS);
videoFields.add(VideoFieldEnum.FLVURL);
videoFields.add(VideoFieldEnum.THUMBNAILURL);
videoFields.add(VideoFieldEnum.VIDEOFULLLENGTH);

try {
// Get My Playlist
Playlist thePlaylist = theReadAPI.findPlaylistById(1234567890123,
videoFields, null, null);

BCPlayerView thePlayer = (BCPlayerView) findViewById(R.id.player);
thePlayer.logEnabled(true);
thePlayer.load(thePlaylist.getVideos().get(0));
thePlayer.start();
} catch (Exception e) {
e.printStackTrace();
}

关于android - 在安卓原生应用中实现 Brightcove 播放器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11859416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com