我正在为我的一个讲座工作项目,我需要下载包psycopg2才能使用正在使用的postgresql数据库.不幸的是,当我尝试pip安装psycopg2时会弹出以下错误:
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
ld: library not found for -lssl
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit status 1
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么会这样?是因为Sierra没有支持某些套餐吗?提前致谢!
我正在玩Firebase存储,它被烘焙到一个照片集合应用程序中,该应用程序收集照片并将它们上传到firebase存储后端.我想上传多张照片并等待所有任务完成,收集下载网址并继续下一步.这是我的代码如下
public void saveImageData() {
Incident incident = new Incident();
final ArrayList<Uri> downloadUris = new ArrayList<>();
StorageReference storageRef = storage.getReferenceFromUrl(Constants.FIREBASE_URL);
for (Uri uri : imageUris) {
StorageReference imagesRef = storageRef.child("images/" + uri.getLastPathSegment());
uploadTask = imagesRef.putFile(uri);
uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
downloadUris.add(taskSnapshot.getDownloadUrl());
Log.e(TAG, "Size of data: " + downloadUris.size());
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
我希望收集所有的uris并使用存储在downloadUris中的结果.当我输入这个时,我意识到这可能不是一个firebase问题,而是了解如何等待并行任务完成执行并继续执行结果.我怎样才能实现这个目标?谢谢
我正在开发一个 Android 项目,其中涉及使用 Google 的 ExoPlayer。我有一个视频源列表,我使用以下代码构建播放列表:
for (int i = 0; i < vidList.length(); i++) {
MediaSource source = new ExtractorMediaSource(Uri.parse(vidList.getJSONObject(i).getString("url")),
buildDataSourceFactory(bandwidthMeter), extractorsFactory, mainHandler, HomeFragment.this);
mediaSources.add(source);
captions.add(vidList.getJSONObject(i).getString("caption"));
}
mediaSource = new ConcatenatingMediaSource(mediaSources.toArray(new MediaSource[mediaSources.size()]));
Run Code Online (Sandbox Code Playgroud)
然后我打电话
exoplayer.prepare(mediasource, false, false)
Run Code Online (Sandbox Code Playgroud)
并且视频连续播放得很好。我想在 textView 中显示当前播放视频的标题,因此我有一个单独的列表来保存每个视频的“标题”值。
通过搜索代码,我发现我可以像这样获取播放列表中当前正在播放的视频;
exoPlayer.getCurrentPeriodIndex()
Run Code Online (Sandbox Code Playgroud)
除了一个问题之外,这似乎有效并返回索引。播放开始时它会两次返回 0 值。也就是说,索引 0 处的视频返回周期 0 以及索引 1 处的视频。这只发生在索引 0 和 1 处,此后其他一切看起来都很好,除了 getCurrentPeriodIndex() 将返回 theAccurateIndex - 1。
我在演示 Exoplayer 应用程序中也看到了这种情况。有没有更好的方法来确定播放列表中当前正在播放的曲目?
谢谢。