C#Winform立即停止子线程中播放的音乐


 发布时间:2020-10-20 09:51:08

用不用委托与卡不卡是两码事,如果是UI线程里的当然会卡如果是开一条线程就不会卡,还有就是你那个放声的Play是另外一个线程在放的吧,是异步的,所以你停止了当然线程也没用。

歌词和歌曲名放在同一个文件夹的同时 歌曲名和歌词名必须要一模一样 在输入时如果有看不见的符号 如空格之类的符号也要一起输入 否则就无法显示歌词 有个更方便的方法是 把歌曲名复制到歌词名上 这样就不用担心 歌词无法显示了 把显示歌词功能打开。

1.从简单的C#语言学起,掌握C#语言的简单用法 2.找一个合适自己的游戏引擎(比如unity,UE4)去官网或者论坛找一些相关的教程 3.作为独立游戏开发者,需要了解掌握除编程以外的其他一些技能,如绘画,UI设计,音乐,写作能力。

您好, 根据您的需求,您可以调用System.Media.SoundPlayer类播放声音文件,代码如下: class Program { static void Main(string[] args) { Console.WriteLine("Please input the wav file name:"); string filename = Console.ReadLine(); if (System.IO.File.Exists(filename)) { SoundPlayer s = new SoundPlayer(filename); s.Play(); } Console.WriteLine("Done"); } } 但是SoundPlayer只支持.wav格式的文件,如果需要播放mp3之类的文件,您也可以调用相应的类库。

jave我没写,你先按照我这个参考着做吧!C#脚本. 在OnGUI中写的,你可以把有用的替换成你自己的. public AudioSource Sound;//监视面板赋值 float curPos; //当前播放位置 float oldPos; //前一帧播放位置 float picth; //音调控制 bool play; //播放控制 bool loop; //循环控制 float size; //拖动比例 void Start() { loop = Sound.loop; //获取是否循环 size = 100 / Sound.clip.length; //计算比例 picth = 1; //音调默认为正常 } void OnGUI() { oldPos = Sound.time * size; if (curPos - oldPos > size || oldPos - curPos > size) { if (curPos - oldPos > Sound.clip.length) { curPos = oldPos; } Sound.time = curPos / size; oldPos = curPos; } curPos = GUILayout.HorizontalScrollbar(oldPos, 1, 0, 100); //播放控制 GUILayout.BeginHorizontal(); play = Sound.isPlaying; if (play) { if (GUILayout.Button("暂停")) { Sound.Pause(); play = false; } } else { if (GUILayout.Button("播放")) { Sound.Play(); play = true; } } if (GUILayout.Button("停止")) { Sound.Stop(); curPos = oldPos = 0; } //循环控制 if (loop) { if (GUILayout.Button("单曲循环")) { loop = false; } } else { if (GUILayout.Button("播放一遍")) { loop = true; } } Sound.loop = loop; GUILayout.EndHorizontal(); //音调控制 picth = GUILayout.HorizontalScrollbar(picth * 40, 0.1f, 0, 100) / 40; Sound.pitch = picth; }。

线程 C# 委托

上一篇: vivoS7上自带的音乐播放器里面BBE和SRS音质各有什么

下一篇: 为什么我的手机一插耳机就会自己启动音乐



发表评论:
相关阅读
网站首页 |网站地图

Copyright © 2012-2020 鸟语歌曲网 版权所有 0.23053