小编Rob*_*opp的帖子

线程与基于任务的对比与异步编程

我是这个概念的新手.这些是相同或不同的东西吗?有什么不同?我真的很喜欢能够同时运行两个进程的想法,例如,如果我有几个大文件加载到我的程序中,我希望尽可能多地同时加载它们而不是一次等待一个.当使用大文件(例如wav文件)时,将它分成几块并一次处理几个块然后将它们重新组合在一起会很棒.我想研究一下如何做这类事情?

编辑:另外,我知道在多核处理器上使用多个核心适合这里,但显然异步编程并不一定意味着你使用多核?如果您没有多个核心可以利用,为什么要这样做呢?

c++ multithreading asynchronous

21
推荐指数
1
解决办法
2万
查看次数

IE11在控制台中截断字符串

我有一个可能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

13
推荐指数
2
解决办法
7677
查看次数

开发人员控制台打开时Flash播放器消失

我正在使用swfObject嵌入swf.如果我将wmode参数设置为"direct","window"或"gpu",那么当我打开chrome开发者控制台时,swf将会消失.其他wmodes(透明和不透明)不会发生这种情况.我真的希望"直接"模式适用于硬件加速,但我需要打开控制台进行调试.

flash google-chrome

12
推荐指数
1
解决办法
588
查看次数

ngTagsInput"ngrepeat:dupes"和"无法读取属性'替换'未定义"

我试图在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)

angularjs ng-tags-input

8
推荐指数
2
解决办法
2749
查看次数

ngChange在值超出隔离范围之前触发

//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.logloadResults注销正是我已经输入.它实际上记录了一个字符,因为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)

angularjs angularjs-ng-change isolate-scope

8
推荐指数
2
解决办法
7374
查看次数

更改本机视频组件的父级而不卸载

我正在尝试使用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属性,以便视频现在是点子,图像在主视图中.问题是视频必须通过过渡继续顺利播放.目前,每次交换发生时都会重新安装,丢失视频并导致恼人的重载和其他不需要的副作用.这有可能实现吗?

这是这个想法的粗略形象.灰色框表示视频播放器,粉色表示图像.单击较小的框(无论颜色)将来回交换两个.应该允许随时进行交换,如果在交换期间正在播放视频,则不应以任何方式中断播放.

在此输入图像描述

react-native

8
推荐指数
1
解决办法
433
查看次数

AMS没有收到取消发布命令SOMETIMES over rtmpt

这个让我至少走了一个星期.我正在尝试将视频文件录制到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

6
推荐指数
1
解决办法
197
查看次数

在查询字符串node.js中传递对象数组

如果我想让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)

url node.js query-string

6
推荐指数
1
解决办法
6953
查看次数

如何在范围输入上垂直居中标签

这看起来很简单,但它给我带来了很多麻烦。我已经尝试过使用这种方法,但它似乎不起作用,正如您在此处看到的: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。

html css

5
推荐指数
1
解决办法
9842
查看次数

手动将 pcm 数据放入 AudioBuffer

所以我已经从 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,然后将我的数据复制到其中。真的??

javascript web-audio-api

5
推荐指数
1
解决办法
3306
查看次数