MIDI播放器

style="WIDTH: 89.81%; HEIGHT: 64px" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4577827332549849&dt=1192819750500&lmt=1192819750&prev_fmts=468x60_as&format=468x15_0ads_al_s&output=html&correlator=1192819750437&channel=1741427766&pv_ch=1741427766%2B&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-68-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforum-16-1.html&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1871659779&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=2&u_java=true">

style="WIDTH: 82.23%; HEIGHT: 74px" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4577827332549849&dt=1192818497343&lmt=1192818497&format=468x60_as&output=html&correlator=1192818497343&channel=1741427766&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-68-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforumdisplay.php%3Ffid%3D16%26page%3D1&ui=rc%3A6&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1000484876&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=6&u_java=true">

 ====1、将以下代码加入HTML的<head></head>之间:
<Script Language="JavaScript">
<!-- Hiding
song = new Array()
var x = 0
song[1] = "007主题曲之一"
song[2] = "007主题曲之二"
song[3] = "999朵玫瑰"
song[4] = "X-档案主题曲"
song[5] = "用心良苦"
song[6] = "泰坦尼克主题曲"
function prev(){
if (x>1)
{ x--
document.midi.typein.value=song [x]
}
}
function next(){
var max= song.length-1
if (x<max)
{ x++
document.midi.typein.value=song [x]
}
}
function go(){
if (x != 0){
location.href='song'+x+'.mid' 
//以上指定播放的是当前路径的midi文件,文件名分别是song1.mid-song6.mid //
}
}
function start(){
x=1
document.midi.typein.value=song [x]
}
function end(){
x=song.length-1
document.midi.typein.value=song [x]
}
function cls(){
document.midi.typein.value="选曲"
}
// Done Hiding -->
</Script>

====2、将以下代码加入HTML的<body></body>之间区:

<BODY οnlοad="cls()">
<FORM Name="midi">
<INPUT NAME="typein" TYPE="text" SIZE="25" ALIGN=top><BR>
<font size=3> 
<INPUT TYPE=Button Value="|<<" Align=left οnclick="start()">
<INPUT TYPE=Button Value="<<" Align=left οnclick="prev()">
<input type=Button value="PLAY" align=left onClick="go()" name="Button">
<INPUT TYPE=Button Value=">>" Align=left οnclick="next()">
<INPUT TYPE=Button Value=">>|" Align=left οnclick="end()">
</font>
</FORM>

style="WIDTH: 44.33%; HEIGHT: 259px" src="http://pagead2.googlesyndication.com/cpa/ads?client=ca-pub-4577827332549849&cpa_choice=CAEaCB94-nvUZWENUB9QugJQtwRQTVAgULcCUB4&oe=gb2312&dt=1192720966468&lmt=1192720966&format=250x250_as&output=html&correlator=1192720966453&channel=2735220158&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-67-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&region=_google_cpa_region_&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforum-16-1.html&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192720940&ga_hid=1155529757&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=2&u_java=true"> style="WIDTH: 52.39%; HEIGHT: 259px" src="http://pagead2.googlesyndication.com/cpa/ads?client=ca-pub-4577827332549849&cpa_choice=CAEaCKcC4yuPlq5lUDRQDVAtUK4BUENQCA&oe=gb2312&dt=1192819388296&lmt=1192819388&format=300x250_as&output=html&correlator=1192819388281&channel=2735220158&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fviewthread.php%3Ftid%3D70%26page%3D1%26extra%3Dpage%253D1&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&region=_google_cpa_region_&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fpost.php%3Faction%3Dedit%26fid%3D16%26tid%3D70%26pid%3D70%26page%3D1%26extra%3Dpage%253D1&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1527165455&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=5&u_java=true">

 

style="WIDTH: 82.23%; HEIGHT: 74px" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4577827332549849&dt=1192818497343&lmt=1192818497&format=468x60_as&output=html&correlator=1192818497343&channel=1741427766&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-68-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforumdisplay.php%3Ffid%3D16%26page%3D1&ui=rc%3A6&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1000484876&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=6&u_java=true">

style="WIDTH: 82.23%; HEIGHT: 74px" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4577827332549849&dt=1192818497343&lmt=1192818497&format=468x60_as&output=html&correlator=1192818497343&channel=1741427766&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-68-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ad_type=text_image&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforumdisplay.php%3Ffid%3D16%26page%3D1&ui=rc%3A6&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1000484876&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=6&u_java=true"> style="WIDTH: 89.81%; HEIGHT: 64px" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-4577827332549849&dt=1192819750500&lmt=1192819750&prev_fmts=468x60_as&format=468x15_0ads_al_s&output=html&correlator=1192819750437&channel=1741427766&pv_ch=1741427766%2B&url=http%3A%2F%2Fyzkzoo.5d6d.com%2Fthread-68-1-1.html&color_bg=FFFFFF&color_text=000000&color_link=0000FF&color_url=008000&color_border=336699&ref=http%3A%2F%2Fyzkzoo.5d6d.com%2Fforum-16-1.html&cc=100&ga_vid=1025434795.1192631677&ga_sid=1192817968&ga_hid=1871659779&ga_fc=true&flash=8&u_h=768&u_w=1024&u_ah=738&u_aw=1024&u_cd=32&u_tz=480&u_his=2&u_java=true">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于您的问题,我可以为您提供以下信息: MIDI播放器是一种能够播放MIDI音乐文件的程序。MIDI音乐文件可以在计算机上使用音乐软件进行创作,然后通过MIDI播放器进行播放。人工解码是指手动解析MIDI文件并将其转换为能够被计算机程序理解的形式,以便在程序中进行播放。 在C语言中,可以使用标准库中的MIDI文件解析库来解析MIDI音乐文件。这些库可以让程序员读取并解析MIDI文件中的各种消息,例如音符、控制器和节奏等。然后,程序员可以使用MIDI输出库将这些消息转换为能够被MIDI设备识别的形式进行播放。 为了帮助您更好地理解这个过程,以下是一个使用C语言编写的简单的MIDI播放器程序的示例代码,带有注释,供您参考: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #include <Windows.h> #include "midifile.h" // 定义一些常量 #define MIDI_NOTE_ON 0x90 #define MIDI_NOTE_OFF 0x80 #define MIDI_PROGRAM_CHANGE 0xC0 // 定义一些全局变量 unsigned int midi_tick = 0; // MIDI时钟tick unsigned int midi_bpm = 120; // MIDI每分钟节拍数 // MIDI事件处理函数 void midi_event_handler(unsigned int delta, unsigned char status_byte, unsigned char param1, unsigned char param2, void* user_data) { // 更新MIDI时钟tick midi_tick += delta; // 处理MIDI事件 switch (status_byte & 0xF0) { case MIDI_NOTE_ON: // 处理Note On事件 printf("Note On - Note=%d, Velocity=%d, Time=%d\n", param1, param2, midi_tick); break; case MIDI_NOTE_OFF: // 处理Note Off事件 printf("Note Off - Note=%d, Velocity=%d, Time=%d\n", param1, param2, midi_tick); break; case MIDI_PROGRAM_CHANGE: // 处理Program Change事件 printf("Program Change - Program=%d, Time=%d\n", param1, midi_tick); break; default: // 忽略其他类型的MIDI事件 break; } } // 主函数 int main(int argc, char* argv[]) { midi_file_t* midi_file; midi_event_t* midi_event; // 解析MIDI文件 midi_file = midi_file_read("sample.mid", 0); // 设置MIDI输出设备 midi_out_open_device(0); // 设置MIDI播放速度 midi_out_set_property(MIDI_OUT_BPM, midi_bpm); // 播放MIDI文件 midi_event = midi_file_get_first_event(midi_file); while (midi_event != NULL) { midi_out_send_event(midi_event->delta, midi_event->data[0], midi_event->data[1], midi_event->data[2]); midi_event = midi_file_get_next_event(midi_file); } // 关闭MIDI输出设备 midi_out_close_device(); // 释放MIDI文件内存 midi_file_free(midi_file); return 0; } ``` 这是一个简单的MIDI播放器程序,它使用了标准的MIDI文件解析库和MIDI输出库。程序通过解析MIDI文件中的每一个事件,并将其转换为MIDI输出设备可以识别的形式进行播放。程序还可以处理多种类型的MIDI事件,例如Note On、Note Off和Program Change等。程序的源代码中也包含了相应的注释,帮助您更好地理解每一行代码的含义。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值