精华内容
下载资源
问答
  • 源代码如下: #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController () @property AVPlayer *...@property Float64 duration; @end @implementat...

    源代码如下:

    #import "ViewController.h"
    #import <AVFoundation/AVFoundation.h>
    @interface ViewController ()
    
    @property AVPlayer *player;
    @property Float64 duration;
    
    @end
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
    
        // Do any additional setup after loading the view.
    }
    - (IBAction)btn_player:(id)sender {
        NSURL* url = [NSURL fileURLWithPath:@"/Users/ben_gao/Desktop/1.mp3"];
        if(!_player){
            NSLog(@"initialize...");
            _player = [[AVPlayer alloc] initWithURL:url];
        }
        _duration = CMTimeGetSeconds(_player.currentItem.duration);
        NSLog(@"%f",_duration);
    }
    
    
    - (void)setRepresentedObject:(id)representedObject {
        [super setRepresentedObject:representedObject];
    
        // Update the view, if already loaded.
    }
    
    
    @end
    

     解决方案:

        AVURLAsset *asset = [AVURLAsset assetWithURL: url];
        _duration = CMTimeGetSeconds(asset.duration);
        NSLog(@"%f",_duration);
    

     

    转载于:https://www.cnblogs.com/ben-gao/p/9412297.html

    展开全文
  • 无法获取到视频地址

    2020-11-29 20:00:54
    无法获取到视频地址 日志 <p>log: [解除B站区域限制 v6.7.2 (Tampermonkey)] run on: https://www.bilibili.com/bangumi/play/ep183803 debug: XMLHttpRequest的描述符: {"writable":true,"enumerable&...
  • <div><p>用golang 服务端 sdk 获取视频信息,时长字段 Duration 返回0值。 <ul><li>产品和接口</strong>: 视频点播服务,获取视频信息</li><li>平台</strong>: 服务端api</li><li>最小代码</strong>:...
  • 无法获取按钮的ID

    2014-05-20 14:54:02
    transition-duration: 0s; } /* SECTIONS */ .section { clear: both; padding: 0 10px 0 10px; margin: 0px; } </style> <div id="hideall"> <?php //echo $this->Html->image...
  • duration "; } } catch (Exception $e) { echo "Error: " . $e->getMessage(); } ?> </code></pre> <p>When I access this file using my browser I get <code>Error: [HTTP 451] Unable to fetch page...
  • Elapsed time.Duration } returnjson := WTKJSON{Geometry: returngeom, WTKType: wkt , Elapsed: time.Since(start)/1000000.0} json.NewEncoder(w).Encode(returnjson) } } func handleError(w ...
  • <p><code>$duration = 60;</code></p> <p>Now I'm accessing the above PHP variable in javascirpt.</p> <pre><code><script type="text/javascript"> var phpVar = '<?php echo $duration; ?>'; ...
  • ], expires: self.class.oauth2_cookie_duration.from_now } yield access_info['openid'], access_info else yield cookies.signed_or_encrypted[:we_openid], { 'openid' => cookies....
  • //time.Sleep(time.Sleep(time.Duration(b))) fmt.Println("worker", w, "finished job", a) results <- j * 2 } } func main() { //n := 5 jobs := make(chan Vertex, 100) results := make(chan int, 100)...
  • // Set the key's viable duration in seconds (86400 seconds = 24 hours) $maxtime = "86400"; require ('dbconnect.php'); if(get_magic_quotes_gpc()) { $id = stripslashes($_GET['id']); }else{ $id = $_...
  • Duration Of Loan</p> <input type="radio" name="DurationOfLoan" value="10 years"> 10 Years<br> <input type="radio" name="DurationOfLoan" value="20 years"> 20 Years <br> &...
  • 您所在的地区无法观看本片 ~ 必须新开一个页面重新进入B站加载该番剧,不知道这是什么原因,授权也没有问题啊 麻烦大佬啦 日志 <pre><code> <!-- 复制来的日志,粘贴在这里 --> log: [解除B...
  • mediaPlayer播放总时间的获取

    万次阅读 2009-01-17 11:02:00
    看msdn文档duration属性就可以获取播放的总时间,但是,运行语句axWindowsMediaPlayer1.currentMedia.duration后得到的却是0(“00:00”),当时极度的困惑,想想,应该是播放后还无法及时获取当前文件的duration,...

    MediaPlayer播放文件的总时间一直困扰好久了,搜索了好久也尝试了好久,最终才找到了适合我的版本的获取播放总时间的方法。

    看msdn文档duration属性就可以获取播放的总时间,但是,运行语句axWindowsMediaPlayer1.currentMedia.duration后得到的却是0(“00:00”),当时极度的困惑,想想,应该是播放后还无法及时获取当前文件的duration,但是如果要写一个延时去控制那也有些不值了。呵呵,终于皇天不负有心人啊,只要mp.newMedia(URL).duration;就可以了。这样获得的是以毫秒为单位的double型的数值,下面是我所获得的当前播放文件总播放时间,以毫秒为单位int型数值。

    例如:

    int plt = (int)axWindowsMediaPlayer1.newMedia(FileUrl ).duration;

     

    既然谈到了播放总时间问题,那就顺便把获取当前播放位置也说说吧!O(∩_∩)O哈哈~

    axWindowsMediaPlayer1.controls.currentPosition://得到值类型double

    axWindowsMediaPlayer1.controls.currentPositionString://得到值类型string,如“00:11”

     

    哈哈,下面是搜到了windows Media Player控件属性及方法,清楚明了

    收藏下:(*^__^*) 嘻嘻……

     

    属性/方法名: 说明:
    [基本属性]  
    URL:String; 指定媒体位置,本机或网络地址
    uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible
    playState:integer; 播放状态,1=停止,2=暂停,3=播放,6=正在缓冲,9=正在连接,10=准备就绪
    enableContextMenu:Boolean; 启用/禁用右键菜单
    fullScreen:boolean; 是否全屏显示
    [controls] wmp.controls //播放器基本控制
    controls.play; 播放
    controls.pause; 暂停
    controls.stop; 停止
    controls.currentPosition:double; 当前进度
    controls.currentPositionString:string; 当前进度,字符串格式。如“00:23”
    controls.fastForward; 快进
    controls.fastReverse; 快退
    controls.next; 下一曲
    controls.previous; 上一曲
    [settings] wmp.settings //播放器基本设置
    settings.volume:integer; 音量,0-100
    settings.autoStart:Boolean; 是否自动播放
    settings.mute:Boolean; 是否静音
    settings.playCount:integer; 播放次数
    [currentMedia] wmp.currentMedia //当前媒体属性
    currentMedia.duration:double; 媒体总长度
    currentMedia.durationString:string; 媒体总长度,字符串格式。如“03:24”
    currentMedia.getItemInfo(const string); 获取当前媒体信息"Title"=媒体标题,"Author"=艺术家,"Copyright"=版权信息,"Description"=媒体内容描述,"Duration"=持续时间(秒),"FileSize"=文件大小,"FileType"=文件类型,"sourceURL"=原始地址
    currentMedia.setItemInfo(const string); 通过属性名设置媒体信息
    currentMedia.name:string; 同 currentMedia.getItemInfo("Title")
    [currentPlaylist] wmp.currentPlaylist //当前播放列表属性
    currentPlaylist.count:integer; 当前播放列表所包含媒体数
    currentPlaylist.Item[integer]; 获取或设置指定项目媒体信息,其子属性同wmp.currentMedia
    展开全文
  • Flutter获取验证码倒计时按钮

    千次阅读 2019-06-05 14:41:58
    在Flutter中,有一个定时器类Timer,使用方法: Timer timer = new Timer(new Duration(milliseconds: 60), (){ ...但是无法获取倒计时的进度。所以我们可以创建一个周期性的Timer: Timer = countDownTimer ...

    在Flutter中,有一个定时器类Timer,使用方法:

    Timer timer = new Timer(new Duration(milliseconds: 60), (){
            //倒计时结束执行
          });
    

    上面代码就是执行一个定时器,60秒后执行回调方法。但是无法获取倒计时的进度。所以我们可以创建一个周期性的Timer:

    Timer = countDownTimer = new Timer.periodic(new Duration(seconds: 1), (timer){
            print(timer.tick);
          });
    

    上面是一个按周期执行的timer,每隔1秒钟执行一次,所以我们可以利用这个来写倒计时按钮。

    				String yzmText="获取验证码";
                      new OutlineButton(
                        onPressed: yzmText=="获取验证码"?yzmGet:null,
                        padding: EdgeInsets.only(top: 0),
                        borderSide: new BorderSide(color: mainGreenColor),
                        highlightedBorderColor: mainGreenColor,
                        child: new Text(yzmText),
                        textColor: mainGreenColor,
                      ),
    

    首先定义一个按钮显示的文本的变量yzmText,zai onPressed中根据yzmText是否为"获取验证码"判断是否可点击,可点击的话执行yzmGet方法:

    	///获取验证码
      Timer countDownTimer;
      yzmGet() {
        countDownTimer?.cancel();//如果已存在先取消置空
        countDownTimer = null;
          countDownTimer = new Timer.periodic(new Duration(seconds: 1), (t){
            setState(() {
              if(60-t.tick>0){//60-t.tick代表剩余秒数,如果大于0,设置yzmText为剩余秒数,否则重置yzmText,关闭countTimer
                yzmText = "${60-t.tick}秒";
              }else{
                yzmText = '获取验证码';
                countDownTimer.cancel();
                countDownTimer = null;
              }
            });
          });
      }
    

    最后别忘记在dispose释放timer:

    @override
        void dispose() {
        // TODO: implement dispose
        countDownTimer?.cancel();
        countDownTimer = null;
        super.dispose();
    
      }
    

    最后的最后:

    欢迎各位同学一起学习flutter,群号:187670882
    
    展开全文
  • 我们将无法帮助你,并将忽略你的问题。</strong></p> 你的运行环境 <ul><li>插件版本:</li><li>平台( iOS):</li><li>Cordova version (<pre><code>8.1.2</code></pre>):</li><li>Cordova ...
  • 最近,开发了一个项目,里面有涉及到了MP3等音频播放的功能,就稍微梳理下,开发过程中遇到的问题,其中之一就是,通过MediaPlayer获取在线音频的时长,无法成功 分析 首先,看看mediaPlayer.getDuration()的源码...

    前言

    最近,开发了一个项目,里面有涉及到了MP3等音频播放的功能,就稍微梳理下,开发过程中遇到的问题,其中之一就是,通过MediaPlayer获取在线音频的时长,无法成功

    分析

    首先,看看mediaPlayer.getDuration()的源码,里面明确地说了,不支持在线内容,所以,根本原因就是它

        /**
         * Gets the duration of the file.
         *
         * @return the duration in milliseconds, if no duration is available
         *         (for example, if streaming live content), -1 is returned.
         */
        public native int getDuration();

    如果使用其他音频播放的框架,感觉开发成本上划不来,而且时间上要求得很急。于是,我只能继续搜索,于是在github上找到了一个可用的获取在线音频的时长的框架,支持的格式和协议也很多,选它就可用了

    https://github.com/wseemann/FFmpegMediaMetadataRetriever

    使用起来也很方便

        /**
         * 获取在线音频时间长度
         *
         * @param url
         * @return
         */
        public static int getDurationInMilliseconds(String url) {
            FFmpegMediaMetadataRetriever mmr = new FFmpegMediaMetadataRetriever();
            mmr.setDataSource(url);
            int duration = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_DURATION));
            mmr.release();//释放资源
            return duration;
        }

    总结

    MARK一下,留着后面做回顾

    展开全文
  • 我有一个sql列,其值为PT2M52.37SPT21.79SPT53M29.68SPPT9S有些MySQL...我试过的任何日期mysql函数都无法正常工作PHP函数(它总是P,第一个字符)function scorm_format_duration($duration) {// Fetch date/time str...
  • 在微信调试 ,也是什么也不显示,然后我用各种res.data[0].ID 或者res.data.ID[0]或者res.data.ID ,res.data.Array[1],res.data.Array.ID等等,都显示没有定义,无法取值 我对JSON不是很熟,我不知道是我PHP里面...
  • 但它无法获取文件。这是我的代码:import subprocessimport osdef getLength(input_video):result = subprocess.Popen('ffprobe -i input_video -show_entries format=duration -v quiet -of csv="p=0"', stdout=...
  • 各位大佬,求问axios拦截器为什么无法拦截接口抛出的异常? 问题描述: 接口返回正常的数据或者返回错误数据时能拦截到, ![图片说明](https://img-ask.csdn.net/upload/202010/12/1602489394_590666.jpg) ...
  • 我想通过这个代码实现试卷试题的生成,通过循环生成了单选题目,并想通过数组POST给验证页面进行评分,但是我发现无法获取check[]数组,也无法POST到目标页面。 作为新手,目的是想实现功能,因此代码很冗杂- - ...
  • discoverableIntent.putExtra(BluetoothAdapter.EXTRA_DISCOVERABLE_DURATION,300); activity.startActivity(discoverableIntent); } } ``` DeviceAdapter.java: ``` package com.example.ble5; import...
  • 看msdn文档duration属性就可以获取播放的总时间,但是,运行语句axWindowsMediaPlayer1.currentMedia.duration后得到的却是0(“00:00”),当时极度的困惑,想想,应该是播放后还无法及时获取当前文件的duration,...
  • // 在这里获取duration(...) playtime = player->duration(); } 经过以上两步就可以获得正确的时间啦。 以下再附上把获得的时间转化为时分秒的函数: QString Widget::convertMillisecToString(qint64 millisec) {...
  • 原生js实现播放器

    千次阅读 2019-09-20 18:52:35
    播放器 ... 遇到的问题: ① 谷歌浏览器上若用本地视频...② 在video的oncanplay事件触发前无法获取该视频的duration值 ③ 只要视频的时间改变都会触发ontimeupdate事件,若想要1s进度条移动 & 1s时间变化一次,可...
  • HTML5音频audio属性

    2020-01-03 12:08:06
    audio 的控制函数主要有: load()加载音频、视频软件,通常不必调用,除非是动态生成的元素,用来在播放前预加载play()...duration获取媒体文件的播放时长,以s为单位,如果无法获取,则为NaNpaused如果媒体文件...
  • HTML5 音频audio属性

    2018-06-30 16:17:00
    audio 的控制函数主要有: load()加载音频、视频软件,通常不必调用,除非是动态生成的元素,用来在播放前预加载play()加载并播放音频、...duration获取媒体文件的播放时长,以s为单位,如果无法获取,则为NaNpause...
  • Python PyAutoGUI 库

    2021-03-20 23:28:19
    在爬虫的时候有些元素可能无法点击或者被获取。 在这个时候我们需要考虑使用 PyAutoGUI 库,这个库被用来对鼠和键盘来进行操作。 可以考察下下面的代码: import time import pyautogui while True: # 移动...
  • Firefox关于Audio事件的bug及解决方案

    千次阅读 2016-07-19 13:34:54
    在项目需求中,需要在播放器的进度条部分添加标签,标签按照时间节点分布,因此需要获取整个音频的时长audio.duration,在chrome中,可以给audio的canplay事件绑定函数获取时长,然后调用渲染标签的函数,但是在fire...
  • 音频/视频那些坑

    2017-09-17 22:23:01
    音频/视频那些坑 ... chrome下src需要在线视频完整引用地址 ... 坑2:window.onload方式获取audio.duration的值为NaN 监听oncanplay 坑3:js动态创建音频数量&gt;6条以后,则无法显示 ex: &lt;vide...

空空如也

空空如也

1 2 3
收藏数 50
精华内容 20
关键字:

无法获取duration