本文整理汇总了C++中MediaMetadataRetriever::getMetadata方法的典型用法代码示例。如果您正苦于以下问题:C++ MediaMetadataRetriever::getMetadata方法的具体用法?C++ MediaMetadataRetriever::getMetadata怎么用?C++ MediaMetadataRetriever::getMetadata使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MediaMetadataRetriever
的用法示例。
在下文中一共展示了MediaMetadataRetriever::getMetadata方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getRetriever
static jobject
wseemann_media_FFmpegMediaMetadataRetriever_getMetadata(JNIEnv *env, jobject thiz, jboolean update_only,
jboolean apply_filter, jobject reply)
{
//__android_log_write(ANDROID_LOG_INFO, LOG_TAG, "getMetadata");
MediaMetadataRetriever* retriever = getRetriever(env, thiz);
if (retriever == NULL ) {
jniThrowException(env, "java/lang/IllegalStateException", NULL);
return JNI_FALSE;
}
// On return metadata is positioned at the beginning of the
// metadata. Note however that the parcel actually starts with the
// return code so you should not rewind the parcel using
// setDataPosition(0).
AVDictionary *metadata = NULL;
if (retriever->getMetadata(update_only, apply_filter, &metadata) == 0) {
jclass hashMap_Clazz = env->FindClass("java/util/HashMap");
jmethodID gHashMap_initMethodID = env->GetMethodID(hashMap_Clazz, "<init>", "()V");
jobject map = env->NewObject(hashMap_Clazz, gHashMap_initMethodID);
jmethodID gHashMap_putMethodID = env->GetMethodID(hashMap_Clazz, "put", "(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;");
int i = 0;
for (i = 0; i < metadata->count; i++) {
jstring jKey = NewStringUTF(env, metadata->elems[i].key);
jstring jValue = NewStringUTF(env, metadata->elems[i].value);
(jobject) env->CallObjectMethod(map, gHashMap_putMethodID, jKey, jValue);
env->DeleteLocalRef(jKey);
env->DeleteLocalRef(jValue);
}
if (metadata) {
av_dict_free(&metadata);
}
return map;
} else {
return reply;
}
}
开发者ID:Leetyle,项目名称:FFmpegMediaMetadataRetriever,代码行数:43,代码来源:wseemann_media_MediaMetadataRetriever.cpp