libzplay开发【播放音乐】笔记1

库方面的配置网上都有/**libZPlayexample**Playtest.mp3tosoundcardoutput.**/#include”stdafx.h”#include#include#include#include”libzplay.h”usingnamespacelibZPlay;intmain(in

大家好,又见面了,我是你们的朋友全栈君。

库方面的配置网上都有

/*
* libZPlay example
*
* Play test.mp3 to sound card output.
*
*/
#include “stdafx.h”
#include <windows.h>
#include <stdio.h>
#include <conio.h>

#include “libzplay.h”

using namespace libZPlay;

int main(int argc, char **argv)
{

    printf(“Playing test.mp3\n\nPress q to end\n\n”);

    // create class instance using class factory.
    ZPlay *player = CreateZPlay();

    // open file
    int result = player->OpenFile(“test.mp3”, sfAutodetect);
    if(result == 0)
    {

        // display error message
        printf(“Error: %s\n”, player->GetError());
        player->Release();
        return 0;
    }

    // get song length
    TStreamInfo info;
    player->GetStreamInfo(&info);

    printf(“Length: %02u:%02u:%02u:%03u\n\n”, info.Length.hms.hour,
        info.Length.hms.minute,
        info.Length.hms.second,
        info.Length.hms.millisecond);

    // start playing
    player->Play();
   
    // display position and wait for song end
    while(1)
    {

        // check key press
        if(kbhit())
        {

            int a = getch();
            if(a == ‘q’ || a == ‘Q’)
                break; // end program if Q key is pressed
        }

        // get stream status to check if song is still playing
        TStreamStatus status;
        player->GetStatus(&status);
        if(status.fPlay == 0)
            break; // exit checking loop

        // get current position
        TStreamTime pos;
        player->GetPosition(&pos);
        // display position
        printf(“Pos: %02u:%02u:%02u:%03u\r”, pos.hms.hour, pos.hms.minute, pos.hms.second, pos.hms.millisecond);

        Sleep(300); // wait 300 ms
    }

    // destroy class instance
    player->Release();

    return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/125890.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • deviceiocontrol true什么意思_device driver service

    deviceiocontrol true什么意思_device driver service与驱动程序通信的函数,除了ReadFile和WriteFile函数还有DeviceIoControl函数,而且DeviceIoControl函数那是相当的彪悍。因为它可以自定义控制码,你只要在IRP_MJ_DEVICE_CONTROL对应的派遣函数中读取控制码,然后针对控制码,你就可以实现自定义的功能了。 函数原型:BOOLWINAPIDeviceIoControl( __

  • idea使用步骤_idea怎么编译maven项目

    idea使用步骤_idea怎么编译maven项目1.下载MybatisCodeHelperPro首先我们打开IDEA,点击file,再点击setting,找到Plugins,我们可以从marketplace中下载MybatisCodeHelperPro。2.安装MybatisCodeHelperPro有时候我们打不开marketplace,这时候我们就需要手动安装MybatisCodeHelperPro,我们点击右上角的小齿轮,选择第三项,选择我们的MybatisCodeHelperPro的压缩包,无需解压。然后我们重启IDEA,这里

  • HandlerThread详解「建议收藏」

    HandlerThread详解「建议收藏」转载请注明链接:HandlerThread版本:2018/9/9-1(10:10)HandlerThread问题汇总基本使用(7)源码(7)问题汇总【☆】是补充问题,直接给答案。其余问题答案都在文中。HandlerThread是什么?【☆】HandlerThread任务是并行处理的?不是!是串行处理的。如果一个任务执行…

  • 程序员周六给心爱的“她”放电的动人故事「建议收藏」

    文章目录0x000x010x020x030x040x00注:此文是一篇流水扯淡文,我和她的故事。你的她还好吗?你有没有遇到过喜欢的她,昨天对你还眉开目笑,含情脉脉,今天就爱搭不理,毫无兴趣。不管你有没有遇到,反正我遇到了。我说的她不是你想的她,我说的她是有着15.6寸1080P超清的容颜的我的“acer 笔记本”。前段时间刚刚换的新的电池,然而今天一拔掉电源线,她就自动关机,根据不给我一点点面子,让我倍感无奈和忧伤~今天是周六,没有“Jack 马”口中福报的我,这一天本该是简单且充实的一天,

  • matlab自带的插值函数interp1的四种插值方法

    matlab自带的插值函数interp1的四种插值方法分段线性插值,临近插值,球面插值,三次多项式插值!!

  • 一阶惯性环节的性能分析——自动控制原理基础补充(二)

    一阶惯性环节的性能分析——自动控制原理基础补充(二)以前读书的时候学习自动控制原理,就是为了考试,各种相频幅频特性题咣咣做,一点都不含糊,但是实际代表什么意义一点都不知道。现在真是发现,这个东西有用得一批。这篇文章从一阶惯性环节为切入点,对自动控制原理进行一个简单的复习。还蛮喜欢博客里面写东西的,按照自己思路,按照逻辑一点一点往下,不像发文章八股文一样。1一阶惯性环节的bode图对于这个非常常见的一阶惯性系统而言,其关键指标就是截止频率。截止频率的定义:从频域响应的角度讲,当保持输入信号的幅度不变,改变频率使输出信号降至最大值的0.707倍

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号