• 一款好的工具软件——TeXmacs


    一款好的工具软件——TeXmacs

    by freeuniverser

    文字编辑和排版软件现在好多,有老牌的TeX,非常流行的LaTeX,广泛使用的Vi(还有Vim)和Emacs,曾经风靡中国内地的WPS,广泛占领中国市场的Microsoft Office,还有Openoffice及其替代品LibreOffice等等,以至于非常之多。而TeXmacs则是TeX与Emacs的完美结合,这个顾名思义。

                                           TeXmacs

    texmacs

    官网回答:FAQ

    作者信息:关于作者

    源码:下载

    一个简单的介绍:TeXmacs

    王垠的操作说明:TeXmacs脑图

    下载地址一:官网下载(目前对Windows不稳定)

    下载地址二:Google下载(比较稳定,叫做iTeXmacs,一样的东西)

    哪个稳定下哪个,根据自己需要。

     
     
    分类: 工具

    一个在线听歌的小玩具

     

      前段时间复习了一下数据结构,算法还有操作系统等基础知识(为找暑期实习做准备)。这段时间已经复习的差不多了,闲着没什么事,想着做两个玩具练练手,于是就从身边最常用的软件之一入手,因为自己每天用,对于需求非常清楚,只要考虑技术的实现就好了。
      想来想去先做一个在线听歌(仿百度随心听)的小玩具吧。

      之前一点点都没有接触过js,php,之类做网页的东西,所以看到实验室服务器上的网页很多事php做的,于是选用php。(0基础,语法神马的只是根据C的语法来猜。)请大神轻点吐槽。。

    需求:由于是做给自己用,我个人喜欢所有歌曲随机播放,所以只要打开网页,从曲库里面随机放歌就好了,由于用户只有自己,所以美观神马的弄个背景图片放上面就好啦,反正平时都是最小化。需求很清晰很简单。

    实现
    1.播放固定歌曲

    1 echo '<embed src='.($name).' id="player" width=400 height=100 type=audio/mpeg loop="true">';

      这句就是用html中的embed标签来播放歌曲啦,name是歌曲名称,剩下的参数什么意思想知道自己google

    2.随机播放
      最初要把歌曲所在的文件夹遍历一遍,把所有的歌曲名称存入数组中,然后随机出一个歌曲名称,放在embed中就成功实现随机播放了~~
      遍历文件夹的代码就不放了,一搜就知道。
    随机一个歌曲名

    for($size = 0;$files[$size] != NULL; $size++);//求出文件夹中文件的数量
    $name=$files[rand()%$size];//随机出一个歌曲名

    3.该网页中唯一的一个按钮:"下一曲"
    只要刷新一下该页面就好啦~~反正都是随机的。

    问题:
    1.存放歌曲的文件夹中还有非音频的文件,所以要把这些文件排除在name外。

    while(strpos($name,"mp3")==false){//如果名字中没有mp3,重新随机,我相信一般其他文件的名字中很少有mp3这个串吧
        $name=$files[rand()%$size];
    }

    根据我这份代码,我的网页只能播放mp3格式的音频了。。。

    2.播完一首歌,继续播这首歌。。。
    这个问题困扰了我很长时间,由于实验室服务器是架在linux上的,在网上找了好久,也只找到windows下用COM组件判断歌曲是否播放完的方法。
    后来分析,利用ffmpeg可以得到音频的许多信息,其中就有歌曲的长度,从中找到,判断时长差不多了刷新下页面,就能做到随机播放任意歌曲了。
    echo '<meta http-equiv="refresh" content="180;url=http://dmxforfun.com/music/music.php">'

    由于对于php一点都不懂,所以语法上的东西基本上都是搜来的。做这个东西一共大约花了两个小时,挺好玩的。有点遗憾的是服务器是实验室的,乱装东西不好,于是就没做到自动播放下一曲,后来无奈只要假设每个歌曲都是180s的,每180s自动刷新好了。

    由于服务器是ip是局域的,所以没办法把这个玩具的实物和大家分享了,抱歉。后来听说类似的东西都是用js实现的,后悔当时选用php了。

    真真切切的一个小玩具,实在是太粗糙了,大神勿喷,欢迎指点。

  • 相关阅读:
    adodb.stream文件操作类详解
    Html中Label标记的作用和使用介绍
    正则表达式的威力轻松消除HTML代码
    只需一行代码就能让IE 6崩溃
    码农干货系列【17】Wind.js与Promise.js
    码农干货系列【3】割绳子(cut the rope)制作点滴:旋转(rotation)
    HTML5 Canvas开发者和读者的福音
    码农干货系列【8】世界上最简单的3D渲染(no webgl)
    码农干货系列【18】getting started with Promise.js(总)
    ProgressForm
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3023097.html
Copyright © 2020-2023  润新知