Titanium 视频播放器有多少种加载状态以及每种状态的含义?

How many load states of Titanium video player's have and the meanings each of them?

伙计们!我需要你的帮助!最近,我试图将 loadstate 事件监听器添加到视频播放器,但是,当我控制事件时evt 来检查负载状态 我发现 IOSAndroid 平台和意料之外,状态含义也不同。据我所知,

  1. Android 视频播放器的加载状态只有两种:01

    0 加载状态好像是 preloading

    1加载状态好像可以正常播放

  2. IOS 视频播放器的加载状态有四种:1, 2, 35

    我只知道没网就出现状态5

这是我的代码:

var activityIndicator = Ti.UI.createActivityIndicator({
    visible: false,
    width: Ti.UI.SIZE,
    height: Ti.UI.SIZE,
    message: 'loading...'
});

videoPlayer.addEventListener('loadstate', function(evt){
    console.info('---------load state---------');
    console.info(evt.loadState);

    if(evt.loadState == 5){
        activityIndicator.show();
    }
});

我检查了 API,但是没有答案。你们中有人对此有很好的了解吗?提前致谢!

欢迎。

--已编辑--

好的,可能是我误解了问题,抱歉。在最新版本的Titanium SDK中,API与原生的iOSclassMPMoviePlayerController对话,可以直接在Apple documentation[=]中查看loadState 16=]

enum {
   MPMovieLoadStateUnknown        = 0,
   MPMovieLoadStatePlayable       = 1 << 0,
   MPMovieLoadStatePlaythroughOK  = 1 << 1,
   MPMovieLoadStateStalled        = 1 << 2,
};
typedef NSInteger MPMovieLoadState;

此外,您可以查看 Android MediaPlayer API 文档

如果您对实现更感兴趣,请记住,我们是开源的呵呵,然后花点时间直接在 Titanium SDK 存储库上检查 -> here

--

嗯,虽然 videoPlayer API 尚未规范化(也许不会),但您可以通过创建条件流来简单地解决此问题,例如:

videoPlayer.addEventListener('loadstate', function(evt){
    if(OS_IOS){...}
    else if(OS_ANDROID){...}
    else {...}
});