我是这个概念的新手.这些是相同或不同的东西吗?有什么不同?我真的很喜欢能够同时运行两个进程的想法,例如,如果我有几个大文件加载到我的程序中,我希望尽可能多地同时加载它们而不是一次等待一个.当使用大文件(例如wav文件)时,将它分成几块并一次处理几个块然后将它们重新组合在一起会很棒.我想研究一下如何做这类事情?
编辑:另外,我知道在多核处理器上使用多个核心适合这里,但显然异步编程并不一定意味着你使用多核?如果您没有多个核心可以利用,为什么要这样做呢?
我有一个可能20或30行的字符串,我想在一个console.log调用中输出到控制台.这在Chrome中效果很好,但IE11会截断控制台中大约一半的字符串.有什么办法可以防止这个?字符串类似于:
-----------------------------------------
Wed Jan 7 20:41:16 GMT-0700 2015 530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9
-----------------------------------------
41:17:181 - Initiating recording...
41:17:233 - Creating NetStream...
41:17:240 - NetStream created.
41:17:240 - Recording ready.
-----------------------------------------
Wed Jan 7 20:41:16 GMT-0700 2015 NetConnectionQueue - rtmp://AMS2alt.commercialtribe.net/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9
-----------------------------------------
41:16:867 - Initializing...
41:16:868 - Creating negotiator...
41:17:175 - Connection success: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9
41:17:175 - Connection added to queue.
41:17:182 - Connection request recieved...
41:17:183 - Connection request fulfilled.
41:17:452 - Connection success: rtmp://AMS2alt.commercialtribe.net:1935/recorder/530d8aa855df0c2d269a5a5853a47a049c52c9d83a2d71d9
41:17:452 - Connection added to queue.
41:18:503 - -----------------------------------------
Wed …
Run Code Online (Sandbox Code Playgroud) javascript internet-explorer console.log internet-explorer-11
我正在使用swfObject嵌入swf.如果我将wmode
参数设置为"direct","window"或"gpu",那么当我打开chrome开发者控制台时,swf将会消失.其他wmodes(透明和不透明)不会发生这种情况.我真的希望"直接"模式适用于硬件加速,但我需要打开控制台进行调试.
我试图在ngTagsInput中使用自动完成,我收到以下错误:
Error: [ngRepeat:dupes] http://errors.angularjs.org/1.2.9/ngRepeat/dupes?p0=item%20in%20suggestionList.items%20track%20by%20track(item)&p1=undefined
at Error (native)
Run Code Online (Sandbox Code Playgroud)
要么
TypeError: Cannot read property 'replace' of undefined
at j (https://localhost:3000/js/plugins/ng-tags-input.min.js:1:5556)
Run Code Online (Sandbox Code Playgroud)
我已经检查了几次,我的查询功能正在返回一个正确的标签数组,而且确实如此.它工作得很漂亮.标签的结构如下所示:
{
name: String,
_id: ObjectId,
__v: Number,
active: Boolean,
display: Boolean,
createDate: Date
}
Run Code Online (Sandbox Code Playgroud)
我的HTML看起来像:
<tags-input
ng-model="tags"
displayProperty="name"
placeholder="Add a tag">
<auto-complete source="loadTags($query)"></auto-complete>
</tags-input>
Run Code Online (Sandbox Code Playgroud)
而我的loadTags函数是:
$scope.loadTags = function(query) {
return $http.get(configService.getApi() + '/tags?conditions=' + urlEncodeObject({name: { $regex: query }}), {
headers: {
'x-auth-token': sessionService.getToken()
}
});
};
Run Code Online (Sandbox Code Playgroud) //main controller
angular.module('myApp')
.controller('mainCtrl', function ($scope){
$scope.loadResults = function (){
console.log($scope.searchFilter);
};
});
// directive
angular.module('myApp')
.directive('customSearch', function () {
return {
scope: {
searchModel: '=ngModel',
searchChange: '&ngChange',
},
require: 'ngModel',
template: '<input type="text" ng-model="searchModel" ng-change="searchChange()"/>',
restrict: 'E'
};
});
// html
<custom-search ng-model="searchFilter" ng-change="loadResults()"></custom-search>
Run Code Online (Sandbox Code Playgroud)
这是一个简化的指令来说明.当我输入到输入,我预计console.log
在loadResults
注销正是我已经输入.它实际上记录了一个字符,因为loadResults
它正好在searchFilter
主控制器中的var从指令接收新值之前运行.但是,在指令内部记录,一切都按预期工作.为什么会这样?
我的解决方案
得到什么在我的简单的例子与ngChange发生的事件的了解之后,我意识到我的实际问题的事实,我其实传入ngModel是一个对象,其属性我改变,也说我有点复杂使用此指令的表单验证作为输入之一.我发现在指令中使用$ timeout和$ eval解决了我所有的问题:
//main controller
angular.module('myApp')
.controller('mainCtrl', function ($scope){
$scope.loadResults = function (){
console.log($scope.searchFilter);
};
});
// directive
angular.module('myApp')
.directive('customSearch', function ($timeout) {
return { …
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用react-native-video组件在iPhone上创建画中画功能.我有两个元素,一个是视频播放器,另一个是绝对位于右下角播放器顶部的图像.
<View style={{ position: 'relative' }}>
<View>
{ this.props.swapPip ? renderVideoPlayer() : renderPip() }
</View>
<View style={{ position: 'absolute', bottom: 16, right: 16 }}>
{ this.props.swapPip ? renderPip() : renderVideoPlayer() }
</View>
</View>
Run Code Online (Sandbox Code Playgroud)
我想播放视频,然后播放中期,并能够切换swapPip
属性,以便视频现在是点子,图像在主视图中.问题是视频必须通过过渡继续顺利播放.目前,每次交换发生时都会重新安装,丢失视频并导致恼人的重载和其他不需要的副作用.这有可能实现吗?
这是这个想法的粗略形象.灰色框表示视频播放器,粉色表示图像.单击较小的框(无论颜色)将来回交换两个.应该允许随时进行交换,如果在交换期间正在播放视频,则不应以任何方式中断播放.
这个让我至少走了一个星期.我正在尝试将视频文件录制到AMS.它几乎在所有时间都很好用,除了大约十分之一或十五个录制会话,当我关闭流时,我从未在AMS的网络上收到'NetStream.Unpublish.Success'.当发生这种情况时,我使用rtmpt连接到AMS,它似乎比rtmp工作得更好.此外,似乎这只发生在Mac上的safari中,但由于它如此断断续续,我真的不相信.这是我的基本流程:
// just a way to use promises with netStatusEvents
private function netListener(code:String, netObject:*):Promise {
var deferred:Deferred = new Deferred();
var netStatusHandler:Function = function (event:NetStatusEvent):void {
if (event.info.level == 'error') {
deferred.reject(event);
} else if (event.info.code == code) {
deferred.resolve(netObject);
// we want this to be a one time listener since the connection can swap between record/playback
netObject.removeEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
}
};
netObject.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
return deferred.promise;
}
// set up for recording
private function initRecord():void {
Settings.recordFile = Settings.uniquePrefix + (new …
Run Code Online (Sandbox Code Playgroud) rtmp flash-media-server actionscript-3 netstream adobe-media-server
如果我想让Node.js查询解析器解析一个数组,则可以发送以下代码:
'?or=foo&or=bar' // gets me { or: ['foo', 'bar'] }
Run Code Online (Sandbox Code Playgroud)
如果我想要一个对象,我可以这样做:
'?or[foo]=bar' // gets me { or: {foo: 'bar'}}
Run Code Online (Sandbox Code Playgroud)
但是,如何获取对象数组?我想要这个输出:
{ or: [{foo: 'bar'}, {bar: 'baz'}]}
Run Code Online (Sandbox Code Playgroud) 这看起来很简单,但它给我带来了很多麻烦。我已经尝试过使用这种方法,但它似乎不起作用,正如您在此处看到的:http : //jsfiddle.net/ENuLz/。浮动标签和输入似乎是朝着正确方向迈出的一步,但我仍然无法弄清楚。
jsfiddle 代码:
<div>
<label for="myslider">Slider:</label>
<input type="range" id="myslider" min="1" max="100" />
</div>
Run Code Online (Sandbox Code Playgroud)
css:
div {
display: table-cell;
vertical-align: middle;
height: 50px;
border: 1px solid red;
}
Run Code Online (Sandbox Code Playgroud)
解决方案: http : //jsfiddle.net/ENuLz/17/
^这似乎适用于最新版本的 chrome、firefox 和 ie。
所以我已经从 an 中取出通道数据AudioBuffer
并通过可传输对象将它发送给网络工作者对其进行一些处理,现在我想把它放回去。我真的必须像这样复制它吗?
var myData = new Float32Array(audioBuf.length);
var chanData = audioBuf.getChannelData(0);
for ( var n = 0; n < chanData.length; n++ ) {
chanData[n] = myData[n];
}
Run Code Online (Sandbox Code Playgroud)
我真的希望有某种方法可以更改ArrayBuffer
每个AudioBuffer
频道参考。就像是...
audioBuf.channel[0].buffer = myData.buffer;
Run Code Online (Sandbox Code Playgroud)
...会非常简单有效,但似乎不存在。有没有这样的方法来更改引用并避免复制数据?
编辑:通过进一步调查,我发现将 Web 音频 API 与可传输对象一起使用的问题更加烦人。当您将数组缓冲区传输给工作程序时,底层数组缓冲区将AudioBuffer
被清除,我相信即使通过Float32Array
返回的复制操作也是getChannelData
不可能的。我现在可以看到完成我想要的唯一方法是放弃原始的AudioBuffer
,创建一个全新的AudioBuffer
,然后将我的数据复制到其中。真的??
angularjs ×2
javascript ×2
asynchronous ×1
c++ ×1
console.log ×1
css ×1
flash ×1
html ×1
netstream ×1
node.js ×1
query-string ×1
react-native ×1
rtmp ×1
url ×1