小编Chr*_*let的帖子

如何获取原始数据的std :: vector指针?

我正在尝试std::vector用作char数组.

我的函数接受一个void指针:

void process_data(const void *data);
Run Code Online (Sandbox Code Playgroud)

在我刚刚使用此代码之前:

char something[] = "my data here";
process_data(something);
Run Code Online (Sandbox Code Playgroud)

哪个按预期工作.

但现在我需要动态性std::vector,所以我尝试了这个代码:

vector<char> something;
*cut*
process_data(something);
Run Code Online (Sandbox Code Playgroud)

问题是,如何将char矢量传递给我的函数,以便我可以访问矢量原始数据(无论是哪种格式 - 浮点数等)?

我试过这个:

process_data(&something);
Run Code Online (Sandbox Code Playgroud)

还有这个:

process_data(&something.begin());
Run Code Online (Sandbox Code Playgroud)

但是它返回了指向乱码数据的指针,后者发出了警告:warning C4238: nonstandard extension used : class rvalue used as lvalue.

c++ stl vector

150
推荐指数
3
解决办法
13万
查看次数

Node JS:自动选择`http.get` vs`https.get`

我有一个Node JS应用程序需要下载文件,在运行时给定一个URL.

URL可以是http://或https://.

我如何最好地满足不同的协议?

目前我有:

var http = require('http');
var https = require('https');

var protocol = (parsedUrl.protocol == 'https:' ? https : http);
protocol.get(parsedUrl, function(res) {
  ...
});
Run Code Online (Sandbox Code Playgroud)

......但感觉笨重.

谢谢!

get node.js

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

32
推荐指数
3
解决办法
4万
查看次数

MediaSource错误:此SourceBuffer已从父媒体源中删除

我正在尝试Chrome中提供的新MediaSource API.

我正试图将二进制数据从WebSocket动态附加到视频媒体源.

从https://html5-demos.appspot.com/static/media-source.html上的示例开始,我的代码目前是:

var websocket = new WebSocket('ws://localhost:8080');
websocket.binaryType = 'arraybuffer';

var mediaSource = new MediaSource();
var buffer;
var queue = [];

var video = $('.video')[0];
video.src = window.URL.createObjectURL(mediaSource);

mediaSource.addEventListener('sourceopen', function(e) {
  video.play();

  buffer = mediaSource.addSourceBuffer('video/mp4; codecs="avc1.64001E"');

  buffer.addEventListener('updatestart', function(e) { console.log('updatestart: ' + mediaSource.readyState); });
  buffer.addEventListener('update', function(e) { console.log('update: ' + mediaSource.readyState); });
  buffer.addEventListener('updateend', function(e) { console.log('updateend: ' + mediaSource.readyState); });
  buffer.addEventListener('error', function(e) { console.log('error: ' + mediaSource.readyState); });
  buffer.addEventListener('abort', function(e) { console.log('abort: ' + mediaSource.readyState); }); …
Run Code Online (Sandbox Code Playgroud)

javascript html5 media-source

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

从RestKit过渡到纯AFNetworking 2.0

我过去两年一直在使用RestKit,但最近我开始考虑从这些monolith框架过渡,因为它看起来真的有点过分.

这是我前进的优点:

  1. 使用NSURLSession进行后台提取非常需要,而RestKit只有实验分支用于过渡到AFNetworking 2.0.转换完成后没有实际日期.(主要原因)
  2. 无需网络库中的CoreData支持,因为不需要全功能的离线数据存储.
  3. 令人头疼的是响应/请求描述符的新概念,因为它们不支持路径模式中的不同参数(例如访问令牌参数),并且无法在具有自定义描述符的一行中创建对象请求操作.在这里,我将对象管理器的功能作为外观丢失.

I. 对象映射过程中RestKit的最大损失. 你能推荐你使用的独立库,它们表现出灵活和稳定吗?

II.我很伤心,我不需要功能齐全的存储,但我仍然需要在某些地方提供一些缓存支持.我听说NSURLCache在上一次操作系统发布中变得很有用.你有没有用它,策略是什么?当网络连接断开时,它是否返回缓存的API响应?

III.有人面临同样的问题吗?您应用了哪些解决方案?也许有人可以提供一些关于他或她在使用纯AFNetworking的多个应用程序中使用的架构的建议?

core-data nsurlcache restkit-0.20 afnetworking-2 nsurlsession

24
推荐指数
1
解决办法
3804
查看次数

将FFMPEG编码为MPEG-DASH(或带有关键帧集群的WebM) - 用于MediaSource API

我目前正在向Chrome发送视频流,以通过MediaSource API播放.

据我了解,MediaSource仅支持使用MPEG-DASH编码的MP4文件,或者支持以关键帧开头的集群的WebM文件(否则会引发错误:媒体段不以关键帧开头).

有没有办法用FFMPEG实时编码MPEG-DASH或关键帧WebM格式?

编辑:

我只是试了一下,ffmpeg ... -f webm -vcodec vp8 -g 1所以每一帧都是一个关键帧.不是理想的解决方案.它现在可以与MediaStream一起使用.有没有办法将段与WebM中的关键帧同步,所以不是每个帧都需要是一个关键帧?


关于WebM/MP4和MediaSource的参考问题:

Media Source Api无法用于自定义webm文件(Chrome版本23.0.1271.97 m)

MediaSource API和mp4

video html5 ffmpeg h.264 webm

18
推荐指数
3
解决办法
3万
查看次数

灰烬 - 自动重定向到firstObject

我想要一个Ember路径/clinic/1自动重定向以显示第一位医生:/clinic/1/doctor/1.

每个诊所都有很多医生.

不幸的是,如果我使用此代码:

var doctor = clinicController.get('content.doctors.firstObject');
router.transitionTo('clinic.doctor.index', doctor);
Run Code Online (Sandbox Code Playgroud)

......这是行不通的,因为content.doctors.length仍然是0当这个代码运行app_router.js.

有任何想法吗?

javascript ember.js ember-router

17
推荐指数
1
解决办法
4279
查看次数

默认的默认构造函数是否将变量初始化为零?

我正在将类更新为C++ 14,并试图找出在构造时将所有实例变量初始化为零的最简单方法.这是我到目前为止所拥有的:

class MyClass {
public:
    int var;
    float* ptr;
    double array[3];
    MyStruct data;
    unique_ptr<MyStruct> smart_ptr;

    MyClass() = default;
    ~MyClass() = default;
}
Run Code Online (Sandbox Code Playgroud)

将构造函数设置为default等效于:

MyClass() : var{}, ptr{}, array{}, data{}, smart_ptr{} {}
Run Code Online (Sandbox Code Playgroud)

...或者我需要初始化每个变量吗?(我已经在Visual Studio中尝试了两种方式,但无论如何我都会得到零,但我不确定这是不是运气.)

我没有括号实例化课程: MyClass obj;

c++ constructor c++14

16
推荐指数
1
解决办法
1601
查看次数

Socket.io错误处理

我遇到了Socket.IO的问题.

我试图在套接字错误后重新连接套接字,但它不会重新连接.这是代码:

socket = io.connect(host, options);
socket.on('connect', this.onConnect);
socket.on('error', function() {
    //here i change options
    socket = io.connect(host, options);
});
Run Code Online (Sandbox Code Playgroud)

为什么不创建新连接?(主机和端口保持不变,它适用于第一个连接).

javascript sockets node.js socket.io

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

在blob上设置内容类型

我们将Blob(图像)传送到websocket并将其渲染到另一端的画布上.

当我使用createObjectURLblob时,我收到此警告:

Resource interpreted as Image but transferred with MIME type text/plain: "blob:https%3A//example.com/demo".
Run Code Online (Sandbox Code Playgroud)

我们使用以下代码创建对象URL.blob通过socket.binaryType = "blob";客户端的标准websocket发送:

socket.onmessage = function(e) {
  var blob = e.data;
  var url = (window.URL || window.webkitURL).createObjectURL(blob);

  var image = document.createElement('img');
  image.src = url;
}
Run Code Online (Sandbox Code Playgroud)

我能想到解决此警告的唯一方法是使用以下代码创建blob的副本,但我不想引入复制所有数据的开销:

var blob = new Blob([e.data], {
  type: 'image/gif'
});
Run Code Online (Sandbox Code Playgroud)

该方法每秒被调用几十次.

关于如何设置blob内容类型而不创建重复Blob对象的任何想法new Blob?

javascript

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