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

为什么AVAudioPlayer的currentTime和持续时间为零?

AVAudioPlayer的currentTime和持续时间为零可能有以下几个原因:

  1. 音频文件尚未加载完全:在开始播放音频文件之前,AVAudioPlayer会将音频文件加载到内存中,如果音频文件较大,加载过程可能需要一些时间。在加载完成之前获取currentTime和持续时间可能会返回零。

解决方案:可以使用AVAudioPlayerDelegate的audioPlayerDidFinishLoading方法来监听音频文件加载完成的事件,确保在获取currentTime和持续时间之前,音频文件已经完全加载。

  1. 没有调用play()方法开始播放音频:AVAudioPlayer对象需要调用play()方法来开始播放音频文件。如果在调用currentTime和duration之前未调用play()方法,这两个值可能会返回零。

解决方案:在调用currentTime和duration之前,确保已经调用了play()方法来开始播放音频文件。

  1. 音频文件格式不支持:AVAudioPlayer只支持部分音频文件格式,例如MP3、AAC等。如果尝试播放不支持的文件格式,可能会导致currentTime和持续时间为零。

解决方案:确保要播放的音频文件格式符合AVAudioPlayer所支持的格式要求。

推荐的腾讯云相关产品:腾讯云音视频服务(Tencent Cloud VOD)是一项面向开发者提供的一站式音视频点播解决方案。它提供了丰富的音视频处理和分发能力,支持各种音视频格式的转码、剪辑、加密、播放等操作,可满足不同场景下的音视频处理需求。

产品介绍链接地址:https://cloud.tencent.com/product/vod

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

IOS开发之简单音频播放器

上面的执行组件都是UIKit中的组件,我们要定时的获取音频的播放时间,我们还要用到NSTimer来定时获取CurrentTime。...播放器怎么能少的了关键的组件呢,我们还需要引入框架AVFoundation.framework。我们会用到组件AVAudioPlayer来播放我们的音频。         ...*imageView;   //声明播放器,来播放我们的音频文件 @property (strong, nonatomic) AVAudioPlayer *player;   //在暂停和播放时回调此按钮...1.下面的代码是为我们的应用添加背景图片,也就是我们上面图片中的黑色背景图片,在初始化ImageView的时候我们知道view的位置和大小CGRectMack(x, y, width, height);...[self.view insertSubview:self.backView atIndex:0];    ​    ​    ​2.初始化我们的进度条并设置进度条的位置和大小,对进度值初始化为零。

1.7K60

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

Slider时间条的处理 播放时间和歌曲总时间的string处理,通过播放器可以拿到已经播放时间currentTime和歌曲总时间duration,播放器返回给我们的是秒,需要将秒转化为分钟,这里给NSString...歌词的处理 创建存放歌词的tableView 当滑动歌手图片时,会来到歌词界面,这里往歌手图片和歌词label上面覆盖scrollView,设置scrollView的contentSize为两个屏幕的宽度...的长度占据整个屏幕的比例设置歌手图片和歌词label的透明度,当完全滑动一个屏幕宽度时,歌手图片和歌词label的透明度为0。...和cell中的label 自定义tableView的cell为CLLrcTableViewCell,对cell进行初始化,对cell的style和背景进行设置,对cell内label的frame和字体等进行设置...= self.currentPlayer.currentTime; } 为CLLrcView添加currentTime已播放时间和duration歌曲总时间属性,重写setCurrentTime:对currentTime

2.9K131
  • iOS开发音频播放基础——AVAudioPlayer的应用

    iOS音频开发——AVAudioPlayer应用 AVAudioPlayer是系统提供给我们的一个音频播放类,在AVFoundation框架下,通过它,我们可以实现一个功能强大的音乐播放器。...一、AVAudioPlayer方法与属性详解 初始化方法有两种,通过音频的路径或者音频data数据初始化player对象 - (instancetype)initWithContentsOfURL:(NSURL...@property(readonly) NSURL *url; 获取创建时的音频数据 @property(readonly) NSData *data; 设置声道偏移量,0为中心,-1为只有左声道,1...设置播放速度,1为正常,0.5为一半速度,2.0为2倍速度 @property float rate; 设置当前播放的时间点 @property NSTimeInterval currentTime;...- (void)audioPlayerDidFinishPlaying:(AVAudioPlayer *)player successfully:(BOOL)flag; 播放遇到错误时调用的函数 -

    1.5K20

    AVFoundation 框架初探究(一)

    AVAudioRecorder ----       前面说了我们的AVAudioPlayer,它是用来播放音频的话,那下面我们要总结的AVAudioRecorder就是负责来录音的类,和前面介绍AVAudioPlayer...和deviceCurrentTime在前面也是解释过,按照理解AVAudioPlayer的理解就没问题 get the current time of the recording - only valid...这个代理和前面AVAudioPlayer的完全类似 注意点也是类似,有不理解的可以往前面翻 @protocol AVAudioRecorderDelegate @optional...时系统也会选择最佳的输入设备,比如插上耳机就使用耳机上的麦克风进行采集并且会设置类别的选项为"AVAudioSessionCategoryOptionAllowBluetooth" 和 "AVAudioSessionCategoryOptionDefaultToSpeaker...: 取值为AVAudioSessionInterruptionTypeBegan表示中断开始,我们应该暂停播放和采集,取值为AVAudioSessionInterruptionTypeEnded表示中断结束

    3K50

    iOS开发 - 音频相关

    一、简介 简单来说,音频可以分为 2 种 1.音效 又称『短音频』,通常在程序中的播放时长为 1 ~ 2 s 在应用程序中起到点缀效果,提升整体用户体验 2.音乐 比如游戏中的『背景音乐』,一般播放时间较长...播放音频可以使用框架:AVFoundation.framework 二、音效的播放 //1.获得音效文件的路径 NSURL *url = [[NSBundle mainBundle] URLForResource...在实际应用中通常使用非压缩的音频格式(AIFF)或者 CAF 音频格式,从而降低系统在音频解码时的消耗,达到省电的目的。...-name '*.mp3' -exec afconvert -f caff -d aac -b 32000 {} \\; 五、音乐的播放 音乐的播放用到一个叫做 AVAudioPlayer 的类 AVAudioPlayer...@property NSTimeInterval currentTime; //播放次数 @property NSInter numberOfLoops; //音量 @property float volume

    57410

    AVFoundation框架解析看这里(3)- 音频AVAudio

    通过AudioSession API,可以控制App的audio相关的行为: 为app选择输入输出的路由 (通过扬声器还是听筒播放) 协调音频播放的app之间的关联,以及系统的声音处理 处理被其他apps...打断 创建一个录音或者播放音乐的 AVAudioSession 单例,使用流程为:获取单例AVAudioSession ——> 设置Category和Options ——> 激活回话。...如果你的应用需要用到iPhone上的听筒,该category是你唯一的选择,在该Category下声音的默认出口为听筒(在没有外接设备的情况下)。音频的输入和输出不需要同步进行,也可以同步进行。...音频播放技术有多种,例如System Sound Services、AVAudioPlayer等,本文以AVAudioPlayer为音频播放技术展开说明。...AV Foundation framework:AVAudioPlayer 类和 AVAudioRecorder 类提供了中断开始和结束的 Delegate 回调方法来处理中断。

    1.9K20

    时间轮在Netty、Kafka中的应用

    抽象 其他一些属性: 时间轮零点时间:startTime 当前指针所指格子:tick 格子长度(持续时间):tickDuration 时间轮运转轮次、回合:remainingRounds 任务截止时间...抽象 其他一些属性: 时间轮零点时间:startMs 当前时间:currentTime 格子长度(持续时间):tickMs 时间轮大小:wheelSize 时间轮的当前层时间跨度:interval =...bucket的到期时间尝试推进,然后会刷一次bucket中的所有任务,这些任务要么是需要立即执行的(即到期时间在 currentTime 和 currentTime + tickMs 之间),要么是需要换桶的...和 currentTime + tickMs 之间), // 要么是需要换桶的,往前移位(即到期时间大于等于 currentTime + tickMs...和 currentTime + tickMs 之间的任务才会被直接处理 if (!

    1.4K30

    AVFoundation 文本转语音和音频录制 播放

    时系统也会选择最佳的输入设备,比如插上耳机就使用耳机上的麦克风进行采集并且会设置类别的选项为".allowBluetooth" 和 ".defaultToSpeaker"。...除非你需要从网络流中播放音频、需要访问原始音频样本或者需要非常低的时延,否则AVAudioPlayer都能胜任。...调用 prepareToPlay这个动作是可选的,当调用Play方法时会隐形激活,不过在创建时准备播放器可以降低调用Play方法和听到声音之间的延时 AVAudioPlayer常用属性...使用Audio Metering AVAudioRecorder和AVAudioPlayer中最强大和最实用的功能就是对音频进行测量。...这两个类都构建与Core Audio框架之上,但为在应用程序中实现音频录制和播放提供了一种更便捷的方法。

    2.3K40

    原生 JS 实现惯性滚动,给鼠标滚轮增加阻尼感,纵享丝滑

    前言当我们在移动终端上滑动页面,手指离开屏幕后,页面的滚动并不会马上停止,而是在一段时间内继续保持惯性滚动,并且滑动阻尼感和持续时间与滑动手势的幅度成正比。...然而鼠标滚轮的传感器通常采用光电或机械的方式运作,由一个旋转轴和一个传感器组成,旋转轴通常无法做出细微的距离控制,使得距离检测更像是段落式的,这些信号在传输到计算机后,并不能实现丝滑的滚动。...time,我们可以计算出每一帧持续时间,代码如下。...currentTime = 0 // 记录当前时间 duration = 0 // 滚动动画的持续时间 ...........,缺少一些边界处理等,如在实际生产项目中使用,推荐安装前面提到的 lenis 这个库,它拥有更完善的功能,基础使用方法和本例是一样的。

    1.8K41

    暂停或延迟Excel VBA运行的3种方法

    2.延迟代码运行使得能够与外部事件(如数据库更新或web服务响应)进行协调,从而确保无缝集成和实时数据处理。 3.VBA中的暂停使得有时间在继续操作之前查看信息或做出决定。...4.在批处理操作之间延迟代码运行可以有效地处理大型数据集或对多个对象执行操作,同时控制资源消耗 5.在VBA代码中引入延迟有助于创建一个更可控的操作序列,允许脚本逐步执行或以特定的间隔执行,从而增强整个脚本代码的逻辑和精确度...As Double Dim i As Long ' 以秒为单位设置所需的暂停持续时间 duration = 10 Set sourceRange = Range("A2:A7") Set...Do ' 获取当前时间 currentTime = Now ' 如果指定的持续时间已过去则退出循环 If currentTime >= startTime + (duration...如果VBA代码延迟时不需要与Excel交互,则可以使用基于Application.Wait和Sleep函数的方法。这些方法主要帮助在运行大型VBA脚本时高效地分配PC资源。

    4.2K30

    在线视频协同:探究画面帧的准确性

    在满足这一要求的同时,我们还必须考虑不同网络条件、不同端和不同使用场景。我们在解决这些问题的过程中发现了一些问题,本文将对这些问题进行讨论。 为什么需要画面帧的准确性?...解决方案 为了确保在暂停时和查看批注时 currentTime 的一致性,我们在暂停时对 currentTime 进行了矫正。...这样,当用户暂停时进行批注,然后再设置 currentTime查看批注时,就不会出现画面偏差问题。通过这种方式,我们就能保证画面在暂停时和查看批注时的准确性。...durationchange 事件是当视频总时长发生改变时触发的。当视频加载前,总时长为默认值"NaN",当视频加载完成后,durationchange 事件触发,总时长会变成视频的实际总时长。...pkt_duration_time :媒体流中的一个标识符,用于标识每一帧的持续时间。

    77830

    虾扯蛋:Android View动画 Animation不完全解析

    public static long currentAnimationTimeMillis() { return SystemClock.uptimeMillis(); } 实际上,有关动画的时间点和持续时间等...重复动画 动画的重复包括重复次数和重复类型(RESTART/REVERSE)。动画最终执行的持续时间为repeatCount * duration的毫秒数。 4....首先看下它的参数: currentTime currentTime是和动画开始时间相对应的“当前时间”,获得动画的执行结果必需的参数就是动画已进行时间,即currentTime - startTime...Animation的动画计算需要startTime和当前动画时间currentTime。...再回顾下上面得出的结论: 为了让getTransformation得到执行: 必须为animation设置startTime,这很讲道理,因为之后执被调用时会提供currentTime,那么动画的状态

    1.6K90
    领券