Read media

本文介绍如何使用C++和OpenCV库读取视频文件,并提供了两种不同的风格示例:C风格和C++风格。C风格使用了旧的OpenCV API,而C++风格则展示了如何利用现代OpenCV C++ API进行视频读取。
#include "stdafx.h"
#include <iostream>

#include "opencv2/opencv.hpp"

using namespace std;
using namespace cv;


int _tmain(int argc, _TCHAR* argv[])
{
//read media c style
	cvNamedWindow("test2", CV_WINDOW_AUTOSIZE);
	CvCapture *capture = cvCreateFileCapture("......Wildlife.wmv");
	IplImage *frame;
	while(1) {
		frame = cvQueryFrame(capture);
		if (!frame) break;
		cvShowImage("test2", frame);
		char c = cvWaitKey(33);
		if (c == 27) break;					//ASCII 27 : Esc
	}

	cvReleaseCapture(&capture);
	cvDestroyWindow("test2");

/***********************************************************************/


//read media cpp style
	VideoCapture capture("......Wildlife.wmv");
	if (!capture.isOpened())						
		return -1;
	Mat frame;
	while(1) {
		capture >> frame;
		namedWindow("test2", WINDOW_AUTOSIZE);
		imshow("test2", frame);

		char c = waitKey(33);
		if (c == 27) break;					//Esc

	}
	return 0;

}

READ_MEDIA_IMAGES是 Android 13(API 级别 33)及以上版本中新增的媒体文件读取权限,用于替代旧版 Android 中宽泛的 READ_EXTERNAL_STORAGE 权限,实现更精细的权限管控,仅允许应用读取设备中的图片文件(如 JPG、PNG、WebP 等),不包含视频、音频等其他媒体类型 [^1]。 在 Android 14 中,更细粒度的媒体访问权限控制将原来的 READ_EXTERNAL_STORAGE 权限拆分为三个独立的权限,其中 READ_MEDIA_IMAGES 用于读取图片 [^3]。 使用方法方面,若遇到 READ_EXTERNAL_STORAGE 报错,从 Android 13(API 级别 33)开始,READ_EXTERNAL_STORAGE 权限被废弃,并且默认情况下不会被授权。可以在 build.gradle.kts 中查看自己的 SDK 版本,确保项目使用的是 Android SDK 33 或更高版本。报错解决方法是将 READ_EXTERNAL_STORAGE 替换为 READ_MEDIA_IMAGE,在 AndroidManifest.xml 文件中,替换或添加新的权限请求: ```xml <uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /> <uses-permission android:name="android.permission.READ_MEDIA_VIDEO" /> <uses-permission android:name="android.permission.READ_MEDIA_AUDIO" /> ``` 这三条权限分别对应授权图片、视频、音频,可根据自身需要替换 [^5]。 若遇到 READ_MEDIA_IMAGE 报错问题,若缺少 Manifest,应使用 `import android.Manifest;`,如果是 `import java.util.jar.Manifest;`,直接替换成前者 [^5]。 权限说明上,只有在核心使用情形下需要持续访问设备共享存储空间中的照片和视频文件的应用才能使用照片和视频权限。若应用只需访问设备上的媒体文件一次,或者很少访问此类文件,则不符合使用 READ_MEDIA_IMAGES/READ_MEDIA_VIDEO 权限的相关要求 [^2]。 此外,在开发 uniapp 项目时,若使用了 uniCloud 云开发平台,它会自动添加一些默认的权限,包括 READ_MEDIA_IMAGES 和 READ_MEDIA_VIDEO,以便在应用程序中使用云端存储和处理媒体文件 [^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值