我正在尝试在我的YouTube API应用程序中获取给定用户的观看视频的完整列表.我想加上所有视频的总持续时间.
当我从历史播放列表中获取视频列表时,API将其限制为50个项目.有分页但项目总数为50(不仅仅是每页); 我无法使用它出现的API访问更多数据.
有没有办法在没有数据上限的情况下获得此播放列表?我希望有另一种方法(使用API)或没有API的方法.我知道YouTube会存储这些数据,因为我可以查看我的整个历史记录(远远超过50个视频).
我正在使用此代码:
var requestOptions = {
playlistId: playlistId,
part: 'snippet',
maxResults: 50
};
gapi.client.youtube.playlistItems.list(requestOptions);
Run Code Online (Sandbox Code Playgroud)
playlistId我从gapi.client.youtube.channels.list请求中获取的历史播放列表的ID 在哪里.
编辑(2017):我想澄清一下,我总是打算下载自己的历史记录,只是出于兴趣,看看我花了多少时间观看视频.我仍然无法做到这一点.
我打算在C中编写一个跨平台库,需要进行一些网络连接.我看到iOS支持套接字,但Apple开发者网站警告不要使用POSIX套接字:
在iOS中,不鼓励POSIX网络,因为它不会激活蜂窝无线电或按需VPN.因此,作为一般规则,您应该将网络代码与任何常见的数据处理功能分开,并使用更高级别的API重写网络代码.
然而,它也表明POSIX套接字是跨平台的一个很好的选择.由于POSIX套接字不能自动激活蜂窝无线电,我自己需要做到这一点吗?有没有更好的方法来做到这一点,而不仅仅是打开一个更高级别的api连接并预先关闭连接?
我正在学习 OpenGL,我的任务是创建下图:

这就是我的意图,但在我第一次编写它时,我将颜色缓冲为 0 - 255 而不是 0.0 - 1.0 的浮点数。显然这是错误的,但这是显示的内容:

仅显示中心三角形,仅显示轮廓,颜色为前三个顶点颜色。为什么会这样?当我缓冲不在 [0.0, 1.0] 范围内的颜色时,OpenGL 会做什么?我找不到这方面的文档。
我的着色器如下:
顶点:
layout (location = 0) in vec3 Position;
layout (location = 2) in vec4 vertexColor;
out vec4 vertexColor0;
void main() {
gl_Position = vec4(Position, 1.0f);
vertexColor0 = vertexColor;
}
Run Code Online (Sandbox Code Playgroud)
分段:
in vec4 vertexColor0;
void main() {
gl_FragColor = vertexColor0;
}
Run Code Online (Sandbox Code Playgroud)
这是我用于缓冲数据和绘制数据的代码:
static const int npoints = 9;
static const glm::vec3 points[npoints] = {
glm::vec3(-0.5, 0.5, 0.0),
glm::vec3(-0.7, 0.0, 0.0),
glm::vec3(-0.3, 0.0, 0.0),
glm::vec3(0.2, …Run Code Online (Sandbox Code Playgroud) 我写了一个简短的程序来读取一个windows obj文件并找到.text部分并在其中运行代码.为此,我进行了以下Windows API函数调用(完整代码[gist.github.com],对于那些感兴趣的人):
HANDLE FileHandle = CreateFile("lib.obj",
GENERIC_READ | GENERIC_EXECUTE,
FILE_SHARE_READ, 0,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
HANDLE MappingHandle = CreateFileMapping(FileHandle, 0, PAGE_EXECUTE_READ, 0, 0, 0);
void *Address = MapViewOfFile(MappingHandle, FILE_MAP_EXECUTE | FILE_MAP_READ,
0, 0, 0);
Run Code Online (Sandbox Code Playgroud)
然后,我在文件中找到.text部分,并将指针转换为C++中的函数指针,并简单地调用该函数.这实际上似乎对我有用.
我是否在映射到文件的虚拟内存范围内调用FlushInstructonCache时出错?
我问这个是因为我最近阅读的是VirtualAlloc文档,它在底部注明:
在创建一个可执行的区域时,调用程序负责通过在代码设置到位后适当调用FlushInstructionCache来确保缓存一致性.否则,尝试从新的可执行区域执行代码可能会产生不可预测的结果.
我的代码是否可能导致CPU在指令缓存中执行旧指令?
MapViewOfFile或CreateFileMapping页面上没有这样的注释.
我在switch case语句中创建了一个AlertDialog,该语句位于for循环中.在AlertDialog上有一个EditText用于输入.当弹出框时,for循环在后台运行.我希望循环等到发送输入继续.以下是AlertDialog的代码:
for(int i=0; i < code.length(); i++){
switch(code.charAt(i)){
case '+':
bytes[index]++;
break;
case '-':
bytes[index]--;
break;
case '<':
if(index > 0){
index--;
}else{
Toast.makeText(this, "Warning: Index is already at zero", Toast.LENGTH_LONG).show();
}
break;
case '>':
if(index <= 500){
index++;
}else{
Toast.makeText(this, "Warning: Maximum bytes reached", Toast.LENGTH_LONG).show();
}
break;
case ']':
if(loop == -1){
Toast.makeText(this, "ERROR: Close bracket before an open bracket!", Toast.LENGTH_LONG).show();
errors++;
break;
}else{
if(bytes[index] == 0){
loop = -1;
}else{
i = loop;
}
break;
}
case …Run Code Online (Sandbox Code Playgroud) c++ ×2
android ×1
freeglut ×1
ios ×1
iphone ×1
javascript ×1
networking ×1
opengl ×1
sockets ×1
winapi ×1
windows ×1
youtube-api ×1