首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

HarmonyOS 开发实践——基于AVPlayer的视频播放

1 场景描述示例场景:AVPlayer播放视频ArkTS实现,创建AVPlayer,设置播放资源和窗口,设置播放参数,播放控制(播放/暂停/跳转),重置,销毁资源,播放完成后切换视频。...2 方案描述AVPlayer:功能较完善的音视频播放ArkTS API,集成了流媒体和本地资源解析,媒体资源解封装,视频解码和渲染功能,适用于对媒体资源进行端到端播放的场景,可直接播放mp4、mkv等格式的视频文件...本示例就是使用avplayer进行视频播放的实现,功能包括多种方式播放视频,以及对于视频播放的控制。具体实现步骤可分为Step1: 调用createAVPlayer()创建AVPlayer实例。..._258.mp4'; // 播放网络视频}}async avPlayerDataSrcDemo// 创建avPlayer实例对象let avPlayer: media.AVPlayer = await...startRenderFrame用于视频播放,监听视频播放首帧渲染时间。当AVPlayer首次起播进入playing状态后,等到首帧视频画面被渲染到显示画面时,将上报该事件。

27420
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    AVPlayer初体验之视频解纹理

    AVPlayer是苹果提供的用来管理多媒体播放的控制器,提供了播放所需要的控制接口和支持KVO的属性,支持播放本地和网络视频,以及实时视频流。...在不同性能的设备上,甚至相同设备的不同iOS版本上,AVPlayer的最大支持清晰度都会不一样,例如在iOS10的某些机器上不支持4k播放,但是到iOS11就支持了,关于测定视频是否可以用AVPlayer...来解码,可以直接在safari中输入视频网址来测试。...error) //print("视频加载错误,\(String(describing: self.avPlayer?....硬件加速 iOS6以后可以使用底层框架VideoToolbox来实现硬解码,具体视频工具箱和硬件加速有很清楚的解释,基本的场景,使用AVPlayer即可满足需求。

    3.5K40

    iOS-视频播放器的简单封装

    如果仅仅是播放视频两者的使用都非常简单,但是相比MediaPlayer,AVPlayer对于视频播放的可控制性更强一些,可以通过自定义的一些控件来实现视频的播放暂停等等。...因此这里使用AVPlayer的视频播放。 封装视频播放器,首先需要实现视频播放器,然后再去考虑怎样封装可以让以后自己使用起来方便快捷。...视频播放器实现 布局完成之后,就是实现播放器功能,我们把播放器功能大致分为四部分来完成 一. 通过播放按钮实现视频播放。...首先CLAVPlayerView加载时需要将播放器layer添加到imageView的layer上,此时蒙版和底部工具条一定都是隐藏的,点击中间播放按钮,视频开始播放并隐藏播放按钮。...而当未播放状态时,点击imageView和中间播放按钮效果一样,开始播放视频。 添加定时器,5秒钟之后隐藏底部工具条,并提供移除定时器的方法。

    1.9K110

    AVPlayer初体验之边下边播与视频缓存

    上篇文章介绍了AVPlayer的基本播放和解码纹理,本文主要利用AVAssetResourceLoaderDelegate实现AVPlayer的边下边播和缓存机制。...注意,以下代码不带分块功能,是因为只发送一个请求,利用NSUrlSession直接请求视频资源,针对元信息在视频文件头部的视频可以实现边下边播,而元信息在视频尾部的视频则会下载完才播放,关于这个视频元信息...接下来谈谈视频的格式问题。...对于AVPlayer来说,只有到AVPlayerItemStatusReadyToPlay状态时,才可以开始播放视频,而进入AVPlayerItemStatusReadyToPlay状态的必要条件就是播放器读到了媒体的...剩下的内容AVPlayer会帮我们处理,包括Seek也是这样的流程,当Seek的时候,原始请求的Range-Byte会变,并且会取消旧的原始请求。 以上就是实现分块下载和缓存的基本思路。

    7.2K51

    iOS 视频播放方式整理

    下面把上面说的各个类分别说一下:       1、AVPlayerItem       在我们使用AVPlayer播放视频的时候,提供视频信息的就是AVPlayerItem,一个AVPlayerItem...我们自定义的那些播放时候的控件就是添加在它上面的,比如我们能看到的播放按钮,停止按钮,或者播放进度条等等。      ...3、 AVPlayer         它主要负责的是管理视频播放,暂停等等,相当于一个视频管理器,要是类比的话他就是一个ViewController(当然不是真正的ViewController),这三者就基本含括了一个基本的视频播...,基于着三者我们总结一下播放一个视频的基本的过程: 首先,得到视频的URL 根据URL创建AVPlayerItem 把AVPlayerItem 提供给 AVPlayer AVPlayerLayer 显示视频...AVPlayer 控制视频, 播放, 暂停, 跳转 等等。 播放过程中获取缓冲进度,获取播放进度。 视频播放完成后做些什么,是暂停还是循环播放,还是获取最后一帧图像。

    2.7K100

    AVKit框架详细解析(四) —— 基于AVKit 和 AVFoundation框架的视频流App的构建

    = AVPlayer(url: url) // 3 VideoPlayer(player: avPlayer) // 4 .edgesIgnoringSafeArea...2) 在这里,您获取 url 并创建一个 AVPlayer 对象。 AVPlayer 是在 iOS 上播放视频的核心。 播放器对象可以启动和停止您的视频,更改其播放速率,甚至可以调高和调低音量。...这包括一个播放按钮、一个静音按钮和用于前进和后退的 15 秒跳过按钮。 2. Adding Remote Playback 那很容易,对吧? 如何从远程 URL 添加视频播放? 那一定要难很多!...此对象表示可播放视频的当前状态。这是您需要提供给 AVPlayer才能使事情顺利进行的内容。 AVFoundation 是一个巨大的框架,远远超出了这几个类。...(player: avPlayer) 构建并运行,打开一个全屏视频并观看出现在左上角的画中画按钮。

    7K10

    【iOS 开发】同步快速判断视频是否可以播放

    ) 尝试解析 url,进行视频播放。...如果你在这里需要直接使用这个 AVPlayer 进行视频播放,那么推荐使用这个 KVO 方法。...否则会有这样几个缺点: avplayer 用于判断视频可播放性,本应该是局部变量,现在因为 KVO 它的 scope 被扩大了 KVO 方法在代码可读性上不如同步的直接判断 控制台会默认打印下面这些东西...如果仅仅是想要判断视频可播放性,而不需要使用 AVPlayer,建议使用这种方法,可以将 AVAsset 的创建逻辑加入到你的自定义播放器的 init 方法中。...我尝试在 iPhone 6s 上使用本地的一个约 800k 的 mp4 视频进行粗略测试,发现新建 AVAsset 耗时约 0.02s,新建 AVPlayer 异步返回耗时约 0.05s,这种同步方法大概快了一倍

    2.1K20

    鸿蒙开发实战案例:视频横竖屏切换及进度条热区拖动

    介绍本示例介绍了@ohos.multimedia.media组件和@ohos.window接口以及使用触摸热区实现视频横竖屏切换及进度条热区拖动的功能。该场景多用于横竖屏视频等媒体播放。...和AVPlayer通过surfaceId绑定,这样可以在XComponent组件内实现视频播放功能。...is:' + this.surfaceID); this.avPlayer.surfaceId = this.surfaceID; }使用AVPlayer 中的width和height属性判断是横屏视频还是竖屏视频...; // 获取视频时长 this.aspect_ratio = this.avPlayer.width / this.avPlayer.height; // 获取视频宽高比 if(this.avPlayer.width...>= this.avPlayer.height) { // 判断是横屏视频还是竖屏视频 this.verticalVideo = false; } else { this.verticalVideo

    9420

    iOS-QQ音乐播放器的简单实现

    我们只需将blur添加到imageView上面然后设置blur的样式即可, blur的样式 需要注意的是:blur需要添加到背景imageView上面和其他View之间,防止模糊效果影响到歌手图片,播放按钮等其他控件...播放暂停、上一首、下一首的点击处理 监听播放按钮点击 播放按钮有播放和暂停两个状态,程序一开始运行就自动播放,所以首先需要在音乐一开始播放的时候修改播放按钮的selected。...self.playWithPauseBtn.selected = currentPlayer.isPlaying; 当点击播放按钮的时候首先需要修改按钮的状态,然后判断音乐播放的状态,如果正在播放则暂停音乐...URLWithString:@"url"]; AVPlayerItem *playerItem = [AVPlayerItem playerItemWithURL:url]; // 2.创建播放器 // AVPlayer...*player = [AVPlayer playerWithURL:url]; AVPlayer *player = [AVPlayer playerWithPlayerItem:playerItem

    2.9K131

    iOS视频播放的基本方法

    Apple为我们提供了多种方法来实现视频播放,包括MPMoviePlayerController,MPMoviePlayerViewController,AVPlayer,AVPlayerViewController...但是AVPlayer本身是不能直接显示视频的,必须创建一个播放层AVPlayerLayer并将其添加到其他的视图Layer上才能显示。 1....对象 AVPlayerItem:一个媒体资源管理对象,用于管理视频的基本信息和状态,一个AVPlayerItem对应一个视频资源 AVPlayer:负责视频播放、暂停、时间控制等操作 AVPlayerLayer...*avPlayer = [[AVPlayer alloc] initWithURL:webVideoUrl]; //步骤3:使用AVPlayer创建AVPlayerViewController,并跳转播放界面...*avPlayer = [[AVPlayer alloc] initWithURL:webVideoUrl]; //步骤3:使用AVPlayer创建AVPlayerViewController,并跳转播放界面

    4.4K20

    制作一个OpenHarmony视频播放器

    媒体子系统提供以下常用功能:音视频播放(AVPlayer9+),AudioPlayer6+ 和 VideoPlayer8+ 整合,升级了状态机和错误码,推荐使用音视频录制(AVRecorder9+),AudioRecorder6...+ 和 VideoRecorder9+ 整合,推荐使用音频播放(AudioPlayer6+),AVPlayer9+ 发布后停止维护,请使用 AVPlayer9+视频播放(VideoPlayer8+),AVPlayer9...+ 发布后停止维护,请使用 AVPlayer9+音频录制(AudioRecorder6+),AVRecorder9+ 发布后停止维护,请使用 AVRecorder9+视频录制(VideoRecorder9...,方便更新进度条时间 avPlayer.on('timeUpdate', (time:number) => { …… })avplayer 播放流程//视频播放伪代码async avPlayerDemo...this.isShowMenu }) }播放 //根据视频文件获取视频源尺寸并生成surface //视频文件的路径在/storage/media/100/local

    16420

    鸿蒙开发实战案例:滑动视频自动播放

    效果图预览使用说明等待视频加载完成,首页中间视频会自动播放。滑动列表,视频达到中间位置会自动播放。滑动列表返回上一个视频会继续播放。...XComponent+AVPlayer实现,也可用Video实现,因XComponent+AVPlayer可对视频进行更多操作,因此本案例使用XComponent+AVPlayer进行开发。...渲染视频。...在资源初始化时,将XComponent和AVPlayer通过surfaceId绑定,并进入准备状态,在准备状态中将对当前视频是否是List显示区域内中间子组件做判断,如果是则进入播放阶段,...// 资源初始化...// 避免同时出现两个视频的声音 this.avPlayer.loop = true; // 设置循环播放 this.isLoadingVideo = true; // 视频加载完成 // 在屏幕中间的视频开始播放

    7820
    领券