查看: 6099|回复: 8
打印 上一主题 下一主题

[其他] Unity3D简单的音乐播放器

[复制链接]

2722

主题

42

听众

3万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
38268
精华
111

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

跳转到指定楼层
楼主
发表于 2014-6-25 01:35:13 |只看该作者 |倒序浏览
  1.     import System.IO;

  2.     import System.Collections;

  3.     import System.Text;

  4.     var www : WWW;

  5.     var file:ArrayList;

  6.     var scrollPosition :Vector2= Vector2.zero;

  7.     var scrollVelocity:float  = 0f;

  8.     var timeTouchPhaseEnded:float  = 0f;

  9.     var inertiaDuration:float = 0.5f;

  10.     var lastDeltaPos:Vector2 ;

  11.     var skin:GUISkin;

  12.     ?

  13.     function Start () {

  14.     file=new ArrayList();

  15.     he("C:\\","*.mp3",file);

  16.     } <!--DVFMTSC-->

  17.     ?

  18.     var play:Texture;

  19.     var pause:Texture;

  20.     var next:Texture;

  21.     var last:Texture;

  22.     var sound:Texture;

  23.     ?

  24.     function OnGUI(){

  25.     GUI.skin=skin;

  26.     var y:int=0;

  27.     scrollPosition = GUI.BeginScrollView( Rect(0, 0, Screen.width, Screen.height), scrollPosition,  Rect(0, 0,Screen.width, file.Count*60), false, false);

  28.     //unity3d教程:www.unitymanual.com

  29.     for(var f:String in file){

  30.     //把系统编码转成utf-8,因为android上是utf-8

  31.     var utf:Encoding =Encoding.UTF8;//utf-8

  32.     var gb:Encoding =Encoding.Default;//系统的编码

  33.     var temp:byte[] = gb.GetBytes(f);

  34.     var temp1:byte[] = Encoding.Convert(gb, utf, temp);

  35.     var f1:String=utf.GetString(temp1);

  36.     ?

  37.     //用lastindexof和substring方法获取文件名(不包括路径)

  38.     var p:int=f1.LastIndexOf('\\',f1.Length-1); //必须是'\\',如果是‘\’会报错的。如果是手机要写‘/’

  39.     var f2:String=f1.Substring(p+1,f1.Length-1-p);

  40.     var b=GUI.Button(Rect(0,y,Screen.width,60),"   "+f2);

  41.     ?

  42.     if(b){

  43.     www=new WWW("file://"+f);    //记住这里面的“//”别写成“\\”就行哈;

  44.     audio.clip=www.audioClip;

  45.     }

  46.     y+=60;

  47.     }

  48.     GUI.EndScrollView();

  49.     ?

  50.     }

  51.     ?

  52.     ?

  53.     function Update (){

  54.     if(Input.touchCount > 0){

  55.     if(Input.GetTouch(0).phase == TouchPhase.Moved){

  56.     scrollPosition.y += Input.GetTouch(0).deltaPosition.y;

  57.     lastDeltaPos = Input.GetTouch(0).deltaPosition;

  58.     }

  59.     else if (Input.GetTouch(0).phase == TouchPhase.Ended){

  60.     print ("End:"+lastDeltaPos.y+"|"+Input.GetTouch(0).deltaTime);

  61.     if(Mathf.Abs(lastDeltaPos.y)> 20.0f){

  62.     scrollVelocity = lastDeltaPos.y * 0.5/ Input.GetTouch(0).deltaTime;

  63.     print(scrollVelocity);

  64.     }

  65.     timeTouchPhaseEnded = Time.time;

  66.     }

  67.     ?

  68.     }

  69.     ?

  70.     else{

  71.     if(scrollVelocity != 0.0f){

  72.     var t:float = (Time.time - timeTouchPhaseEnded)/inertiaDuration;

  73.     var frameVelocity:float = Mathf.Lerp(scrollVelocity, 0, t);

  74.     scrollPosition.y += frameVelocity * Time.deltaTime;

  75.     if (t >= inertiaDuration)

  76.     scrollVelocity = 0;

  77.     }

  78.     ?

  79.     }

  80.     if(Input.GetKey(KeyCode.Escape)){

  81.     Application.Quit();

  82.     }

  83.     if(!audio.isPlaying)

  84.     audio.Play();

  85.     }

  86.     ?

  87.     function he(path:String,pattern:String,al:ArrayList){

  88.     if(path!=null){

  89.     var f1:String[]=Directory.GetFiles(path,pattern);

  90.     var d1:String[];

  91.     for(var f11:String in f1){

  92.     al.Add(f11);

  93.     }

  94.     try{

  95.     d1=Directory.GetDirectories(path);

  96.     for(var d11:String in d1){

  97.     try{ he(d11,pattern,al);}

  98.     catch(Exception){}

  99.     }

  100.     }catch(Exception){}

  101.     ?

  102.     }

  103.     }

  104.     ?
复制代码
分享到: QQ好友和群QQ好友和群 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
转播转播0 分享淘帖0 收藏收藏0 支持支持0 反对反对0
回复

使用道具 举报

hyui    

1

主题

2

听众

6671

积分

高级设计师

Rank: 6Rank: 6

纳金币
2715
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

沙发
发表于 2014-6-25 02:33:02 |只看该作者
Thanks for sharing this!
回复

使用道具 举报

wucnj    

1

主题

1

听众

3160

积分

中级设计师

Rank: 5Rank: 5

纳金币
1065
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

板凳
发表于 2014-6-25 09:07:29 |只看该作者
感谢分享!!!
回复

使用道具 举报

115

主题

3

听众

5676

积分

高级设计师

Rank: 6Rank: 6

纳金币
7268
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

地板
发表于 2014-6-25 16:49:30 |只看该作者
感谢分享!
回复

使用道具 举报

0

主题

1

听众

42

积分

设计初学者

Rank: 1

纳金币
7
精华
0

活跃会员 灌水之王

5#
发表于 2014-6-25 19:59:02 |只看该作者
多谢分享~
回复

使用道具 举报

40

主题

0

听众

2万

积分

资深设计师

Rank: 7Rank: 7Rank: 7

纳金币
279
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

6#
发表于 2014-6-25 21:25:56 |只看该作者
一楼二楼的乘客,  请问你俩好像只要有帖子就来啊!一个
Thanks for sharing this!一个感谢分享!!!
回复

使用道具 举报

0

主题

2

听众

4092

积分

中级设计师

Rank: 5Rank: 5

纳金币
530
精华
0

最佳新人 活跃会员 热心会员 灌水之王 突出贡献

7#
发表于 2014-6-26 08:19:51 |只看该作者
Thanks for sharing!
回复

使用道具 举报

1

主题

1

听众

135

积分

设计实习生

Rank: 2

纳金币
1
精华
0
8#
发表于 2016-12-14 17:02:39 |只看该作者
我这边为什么不能播放呢、、、
回复

使用道具 举报

1

主题

1

听众

135

积分

设计实习生

Rank: 2

纳金币
1
精华
0
9#
发表于 2016-12-14 17:03:12 |只看该作者

Thanks for sharing!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

手机版|纳金网 ( 闽ICP备2021016425号-2/3

GMT+8, 2024-11-16 09:18 , Processed in 0.352093 second(s), 32 queries .

Powered by Discuz!-创意设计 X2.5

© 2008-2019 Narkii Inc.

回顶部