我需要存储在 Amazon S3 云存储中的音频和视频 URL 的媒体长度。我尝试过 wmplib 和 directshow lib,但两者都用于获取文件临时存储在文件系统中时的持续时间或长度。我需要通过直接传递云URL来获取媒体长度。
我还使用过 Windows APICodePack.Shell 库。所有这些库都可用于获取本地存储文件的持续时间。
如何实现这一目标?
使用 Windows APICodePack.Shell
using Microsoft.WindowsAPICodePack.Shell;
ShellFile so = ShellFile.FromFilePath(file);
double nanoseconds;
double.TryParse(so.Properties.System.Media.Duration.Value.ToString(),
out nanoseconds);
Console.WriteLine("NanaoSeconds: {0}", nanoseconds);
Run Code Online (Sandbox Code Playgroud)
使用 WMPLib
WindowsMediaPlayerClass wmp = new WindowsMediaPlayerClass();
IWMPMedia mediaInfo = wmp.newMedia(filePath);
return mediaInfo.durationString
Run Code Online (Sandbox Code Playgroud) 我是Headed Bidding的新手。我已经使用Prebid-Header Bidding创建了一个广告位。我已经在下面提到了代码。我需要知道这是使用Header-Bidding的正确方法。让我知道是否需要进行更改以将其托管在服务器中。
Prebid.js
<script>
var googletag = googletag || {};
googletag.cmd = googletag.cmd || [];
googletag.cmd.push(function () {
googletag.pubads().disableInitialLoad();
});
pbjs.que.push(function () {
pbjs.addAdUnits(adUnits);
pbjs.requestBids({
bidsBackHandler: sendAdserverRequest
});
});
function sendAdserverRequest() {
if (pbjs.adserverRequestSent) return;
pbjs.adserverRequestSent = true;
googletag.cmd.push(function () {
pbjs.que.push(function () {
pbjs.setTargetingForGPTAsync();
googletag.pubads().refresh();
});
});
}
setTimeout(function () {
sendAdserverRequest();
}, PREBID_TIMEOUT);
</script>
Run Code Online (Sandbox Code Playgroud)
<script>
(function () {
var gads = document.createElement('script');
gads.async = true;
gads.type = 'text/javascript';
var useSSL = 'https:' == document.location.protocol;
gads.src = (useSSL …
Run Code Online (Sandbox Code Playgroud)