欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++實(shí)現(xiàn)顯示MP3文件信息的方法

 更新時間:2015年06月15日 09:55:03   作者:紅薯  
這篇文章主要介紹了C++實(shí)現(xiàn)顯示MP3文件信息的方法,可實(shí)現(xiàn)顯示如作者、專輯等(libZPlay)信息的功能,需要的朋友可以參考下

本文實(shí)例講述了C++實(shí)現(xiàn)顯示MP3文件信息的方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下:

/**
 * This is small example how to use libZPlay library to play files.
 * This example is using OpenFile functions to open disk files and play.
 */
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <olectl.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <dos.h>
#include <conio.h>
#include "../include/libzplay.h"
using namespace libZPlay;
ZPlay* player;
int __stdcall CallbackFunc(void* instance, void *user_data, TCallbackMessage message, unsigned int param1, unsigned int param2);
int main(int argc, char **argv)
{
  // clear screen
  system("CLS");
  // create class instance
  player = CreateZPlay();
  // chek if we have class instance
  if(player == 0)
  {
    printf("Error: Can't create class instance !nPress key to exit.n");
    getch();
    return 0;  
  }
  // get library version
  int ver = player->GetVersion();
  // check if we have version 2.00 and above
  if(ver < 200)
  {
    printf("Error: Need library version 2.00 and above !nPress key to exit.\r\n");
    getch();
    player->Release();
    return 0;
  }
  // display version info
  printf("libZPlay v.%i.%02i\r\n\r\n", ver / 100, ver % 100);
  if(argc > 1) 
  {
    TID3InfoEx id3_info;
    if(player->LoadFileID3Ex(argv[1], sfAutodetect, &id3_info, 1)) // loading ID3v2
    {
      printf("Title:  %s\r\n", id3_info.Title);
      printf("Artist: %s\r\n", id3_info.Artist);
      printf("Album:  %s\r\n", id3_info.Album);
      printf("Year:  %s\r\n", id3_info.Year);
      printf("Comment: %s\r\n", id3_info.Comment);
      printf("Genre:  %s\r\n", id3_info.Genre);
      printf("Track:  %s\r\n\r\n", id3_info.TrackNum);
      printf("Artist1 : %s\r\n", id3_info.AlbumArtist );
      printf("Composer: %s\r\n", id3_info.Composer );
      printf("Original: %s\r\n", id3_info.OriginalArtist );
      printf("Copyright: %s\r\n", id3_info.Copyright );
      printf("URL:    %s\r\n", id3_info.URL );
      printf("Encoder:  %s\r\n", id3_info.Encoder );
      printf("Publisher: %s\r\n", id3_info.Publisher );
      printf("BPM:    %u\r\n", id3_info.BPM);
      printf("MIME:   %s\r\n", id3_info.Picture.MIMEType);
      printf("TYPE:   %u\r\n", id3_info.Picture.PictureType);
      printf("Desc:   %s\r\n", id3_info.Picture.Description);
      printf("Size:   %u\r\n", id3_info.Picture.PictureDataSize);
      // draw picture on desktop window
      player->DrawBitmapToHWND(NULL, 0, 0, 0, 0, id3_info.Picture.hBitmap);
    }
    else
    {
      printf("No ID3 data\r\n\r\n");
    }
   }
   else
   {
   // no filename in argument
    player->Release(); // delete ZPlay class
    char *end = strrchr(argv[0], '\');
    if(end && *(end + 1) != 0)
      end++;
    else
      end = argv[0];
    printf("Usage: %s filename\r\n\r\nPress key to exit\r\n", end);
    getch();
    return 0;
   }
  getch();
}

希望本文所述對大家的C++程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • C++泛型編程基本概念詳解

    C++泛型編程基本概念詳解

    這一篇介紹一下 C++ 編程中與面向?qū)ο蟛⒘械牧硪淮蠓种А盒途幊?,這一篇主要介紹函數(shù)模板、類模板和成員模板三大部分,需要的朋友可以參考下
    2021-08-08
  • c_str()的用法詳細(xì)解析

    c_str()的用法詳細(xì)解析

    c_str()就是把string類對象轉(zhuǎn)換成和c兼容的char *類型。這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數(shù)c_str()把string 對象轉(zhuǎn)換成c中的字符串樣式
    2013-09-09
  • C語言調(diào)用go生成的動態(tài)庫的踩坑過程解析

    C語言調(diào)用go生成的動態(tài)庫的踩坑過程解析

    這篇文章主要為大家介紹了C語言調(diào)用go生成的動態(tài)庫的踩坑過程解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • C++中頭文件與源文件的作用詳解

    C++中頭文件與源文件的作用詳解

    這篇文章主要給大家介紹了關(guān)于C++中頭文件與源文件的作用的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用C++具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • C語言詳細(xì)分析不同類型數(shù)據(jù)在內(nèi)存中的存儲

    C語言詳細(xì)分析不同類型數(shù)據(jù)在內(nèi)存中的存儲

    使用編程語言進(jìn)行編程時,需要用到各種變量來存儲各種信息。變量保留的是它所存儲的值的內(nèi)存位置。這意味著,當(dāng)您創(chuàng)建一個變量時,就會在內(nèi)存中保留一些空間。您可能需要存儲各種數(shù)據(jù)類型的信息,操作系統(tǒng)會根據(jù)變量的數(shù)據(jù)類型,來分配內(nèi)存和決定在保留內(nèi)存中存儲什么
    2022-08-08
  • c++ typeid關(guān)鍵字的使用

    c++ typeid關(guān)鍵字的使用

    這篇文章主要介紹了c++ typeid關(guān)鍵字的使用,幫助大家更好的理解和使用c++,感興趣的朋友可以了解下
    2020-11-11
  • c語言中數(shù)組名a和&a詳細(xì)介紹

    c語言中數(shù)組名a和&a詳細(xì)介紹

    其實(shí)這兩個東西挺難理解的,應(yīng)該也沒有那么重要,了解一下好了,主要還是要多多理解數(shù)組指針的運(yùn)算
    2013-08-08
  • c++圖像處理:24位真彩圖顏色變換實(shí)例

    c++圖像處理:24位真彩圖顏色變換實(shí)例

    下面小編就為大家?guī)硪黄猚++圖像處理:24位真彩圖顏色變換實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C語言的隨機(jī)數(shù)rand()函數(shù)詳解

    C語言的隨機(jī)數(shù)rand()函數(shù)詳解

    這篇文章主要為大家詳細(xì)介紹了C語言的隨機(jī)數(shù)rand()函數(shù),使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • C++的輸入和輸出流詳解

    C++的輸入和輸出流詳解

    這篇文章主要為大家詳細(xì)介紹了C++的輸入和輸出流,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03

最新評論