小编Jom*_*ome的帖子

无法通过pip install安装psycopg2包...这是因为Sierra?

我正在为我的一个讲座工作项目,我需要下载包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没有支持某些套餐吗?提前致谢!

python pip psycopg2

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

如何执行多个firebase上传并等待集合结果

我正在玩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问题,而是了解如何等待并行任务完成执行并继续执行结果.我怎样才能实现这个目标?谢谢

java android firebase-storage

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

如何使用 ExoPlayer 获取当前正在播放的曲目的索引

我正在开发一个 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 应用程序中也看到了这种情况。有没有更好的方法来确定播放列表中当前正在播放的曲目?

谢谢。

android exoplayer

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

标签 统计

android ×2

exoplayer ×1

firebase-storage ×1

java ×1

pip ×1

psycopg2 ×1

python ×1