我想使用以下load()方法接受五个参数,以便我可以从较大的视频加载一个小的"摘录":
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/fl/video/VideoPlayer.html#load()
特别是,startTime和duration参数似乎是我需要的,但我得到的错误似乎表明我没有正确的对象/版本的东西,即使Adobe文档说它应该工作.这是我的步骤:
创建一个新图层并在第1帧中添加Actionscript:
import fl.video.*;
var innerPlayer = vPlayer.getVideoPlayer(vPlayer.activeVideoPlayerIndex);
trace(innerPlayer); // "[object VideoPlayer]" appears in Output window
innerPlayer.load(
"RTMP://..."
, 0 // totalTime
, false // isLive
, 60 // startTime
, 10 // duration
);
Run Code Online (Sandbox Code Playgroud)这应该给我从一分钟标记开始的十秒钟剪辑,但我不断收到错误 ArgumentError: Error #1063: Argument count mismatch on fl.video::VideoPlayer/load(). Expected 1, got 5.
我也尝试将innerPlayer转换为fl.video.VideoPlayer,但这不起作用.
我究竟做错了什么?
编辑:即使我在CS4/AS3和文档声称适用于CS4/AS3,我的"组件源"文件夹中的类文件似乎与文档不匹配.我也在CS6中尝试了这个,我得到了"1137:参数数量不正确.预计不超过3".
@SunilD.- 对于CS4: FLVPlayback.VERSION= 2.1.0.19,我的目标是Flash Player 10(最新的)+ AS3.对于CS6,FLVPlayback.VERSION= 2.5.0.26,我的目标是Flash Player 11.4.
在CS4和CS6中,错误表明VideoPlayer load()只需要一个参数(有两个可选参数),并且play() …
我正在使用 Identity Server 4 示例代码。特别是,对于客户端,我使用带有混合流的示例 MVC 客户端:https : //github.com/IdentityServer/IdentityServer4/tree/master/samples/Clients/src/MvcHybrid
对于服务器,我将 Identity Server 与内存客户端一起使用(没有实体框架,也没有 ASP.Net Identity):https : //github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts
客户端和服务器都有非常普通的、开箱即用的配置。
我试图了解刷新令牌如何过期以及本机应用程序如何主动确定过期时间(在它被 API 拒绝之前)。我的理解是刷新令牌的默认到期时间很长:
http://docs.identityserver.io/en/latest/topics/refresh_tokens.html:
刷新令牌的最长生命周期(以秒为单位)。默认为 2592000 秒/30 天
但是,当示例代码请求刷新令牌时,我没有得到预期的到期时间。这是示例代码:
var disco = await _discoveryCache.GetAsync();
if (disco.IsError) throw new Exception(disco.Error);
var rt = await HttpContext.GetTokenAsync("refresh_token");
var tokenClient = _httpClientFactory.CreateClient();
var tokenResult = await tokenClient.RequestRefreshTokenAsync(new RefreshTokenRequest
{
Address = disco.TokenEndpoint,
ClientId = "mvc.hybrid",
ClientSecret = "secret",
RefreshToken = rt
});
Run Code Online (Sandbox Code Playgroud)
tokenResult.ExpiresIn是 3600 秒,这实际上是访问令牌的到期时间。我原以为是 2592000 秒。所以问题#1 是: 为什么会这样?
但更重要的是,我知道刷新令牌的到期实际上是我使用 SQL Server …
我似乎有一个接口实现的基本语法问题.基本上我有这个:
public interface IMarkerInterface
{
}
public class ConcreteObject : IMarkerInterface
{
}
public interface IDoStuffInterface
{
void DoStuff(IMarkerInterface obj);
// also doesn't work
// void DoStuff<T>(T obj) where T : IMarkerInterface;
}
public class ConcreteDoStuff : IDoStuffInterface
{
public void DoStuff(ConcreteObject c)
{
}
}
Run Code Online (Sandbox Code Playgroud)
在我看来,ConcreteObject工具IMarkerInterface因此ConcreteDoStuff.DoStuff()应该实施IDoStuffInterface.
但是我收到了编译错误 "Error ConcreteDoStuff does not implement interface IDoStuffInterface.DoStuff()"
怎么会?
我对有问题的C程序(arrays-pointers.c)有很多疑问:
#include <stdio.h>
int main(void) {
char * vowels = {'A', 'E', 'I', 'O', 'U'};
printf("sizeof(vowels): %d\n", sizeof(vowels));
}
Run Code Online (Sandbox Code Playgroud)
我使用gcc(gcc arrays-pointers.c -o arrays-pointers.exe)进行编译,但收到警告(但不是完全错误):
In function 'main':
warning: initialization of 'char *' from 'int' makes pointer from integer
without a cast [-Wint-conversion]
char * vowels = {'A', 'E', 'I', 'O', 'U'};
^~~
note: (near initialization for 'vowels')
warning: excess elements in scalar initializer
char * vowels = {'A', 'E', 'I', 'O', 'U'};
^~~
note: (near initialization for …Run Code Online (Sandbox Code Playgroud) c# ×2
actionscript ×1
arrays ×1
c ×1
flash ×1
flvplayback ×1
inheritance ×1
interface ×1
pointers ×1
video-player ×1