吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5987|回复: 19
收起左侧

[其他转载] 关于C#WINFORM 的axWindowsMediaPlayer1控件的问题

[复制链接]
wuaixql 发表于 2018-1-18 00:11
我实在受不了了!!!我实在受不了了!!!我实在受不了了!!!

好吧,我是青鸟的一名学员,现在在研究S1的结业项目  MyKTV        老师也提供了素材,不过恕我直言真的很丑     我就自己做了个界面   QQ截图20180117235511.png         

我也去过很多次KTV     我想照着人家KTV的点播系统的样子模仿一个,然后发现实在是好难,好难,好难!   (或许是我懂得太少了把,求知模式开启~~~)

下面我把我的所有思路放上去,以及中间碰到的问题,望路过的大神帮忙解决以及提出其中的不足

首先我建立了一个数据库   字段有   歌曲编号  歌名 歌手 专辑  语种 地址(就是视频的地址)  点播状态(0:未点  1:已点,正处于播放状态或者未播放状态  2:点完了,也播完了,就说这首歌唱完了)    点数次数     点播时间


然后主界面在窗体的加载事件里面我首先是按照KTV的做法来的,你一进去肯定是没有点歌的对吧,所以我就取了一个随机数  随机数的取值范围是1-数据库歌曲的数量+1   然后根据随机数查询对象编号的歌曲的地址
[C#] 纯文本查看 复制代码
 string sql = "SELECT COUNT(*) FROM Music";
            int musicsum = Convert.ToInt32(DBHelper.MyExecuteScalar(sql));
            Random rd = new Random();
            int musicid = rd.Next(1, musicsum + 1);
            string sql2 = string.Format("SELECT URL FROM Music WHERE MusicID={0}", musicid);
            string musicurl = DBHelper.MyExecuteScalar(sql2).ToString();
            return musicurl;

这个方法我在窗体的加载事件调用。   


第一个小功能是完全没问题的   接下来我打算做点歌的功能  我另外做了一个窗体    QQ截图20180118000605.png    用来实现点歌的功能     
然后按照现实中KTV来做 就是你点完第一个歌曲后播放器会立马播放你点的那首歌曲  这里我试过在主窗体里面写一个方法1  方法的功能是改变播放器的UR 然后在点歌窗体点歌后调用主窗体的方法1    遇到一个很尴尬的事情   播放器发生了一个很诡异的事情
就是刚开始播放的视频继续在播放,但是出现了我刚刚点的那首歌的声音,好吧,我承认我被吓尿了    我实在不知道该怎么写下去了,有没有哪位大神能够给点思路,怎么实现类似现实中KTV这样的操作  

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

smuuupl 发表于 2018-1-19 08:48
wuaixql 发表于 2018-1-18 13:50
大兄弟,这个思路我想过,这样说吧!   我昨天研究一下,按照正常做法是没办法在其他窗口控制该窗口的控 ...

你把要控制的窗口在Program.cs类中,定义为全局变量public static frmMain mainGui;//主界面,然后该窗口里面定义一个方法如下,其他窗口就可以控制这个窗口的内容了:
[Asm] 纯文本查看 复制代码
        
       delegate void PlayControl(int ctrType);
        public void PlayControl(int ctrType)
        {
            try
            {
                if (this.axMediaPlayControl1.InvokeRequired)
                {
                    PlayControl d = new PlayControl(SetStausBar);
                    this.Invoke(d, new object[] { ctrType });
                }
                else
                {
                   控制逻辑代码			                  
                }
            }
            catch { }
        }
 楼主| wuaixql 发表于 2018-1-18 13:50
smuuupl 发表于 2018-1-18 09:54
主窗体里面写一个方法1,回调时你不得做播放停止操作吗,判断有正在播放的停止。再重新设置播放源,开始播 ...

大兄弟,这个思路我想过,这样说吧!   我昨天研究一下,按照正常做法是没办法在其他窗口控制该窗口的控件的属性,即便我改变了播放器的URL   就出现了我上面所描述的问题
口袋C 发表于 2018-1-18 05:30
wang65424773 发表于 2018-1-18 06:45 来自手机
你点歌后,前面一首没有播放完毕,你要把前面的那首给杀掉前后再播放你这首的UR,这样就不会出现你的那个现象了,同时MTV都是直接停止掉进行下一曲,你也要做这个函数,如果前面那首没有播放完成,又没有点下一首,那你要进行预播放。等待上一首完成,然后再播放下一首。如果人为点击了下一首那就调用刚我说的那个函数
麦秸 发表于 2018-1-18 09:20
青鸟模式:上午下课下午休息
nddb 发表于 2018-1-18 09:25
预播放和点歌播放先2个方法!播放MV调用这2个方法 在调用前停止在播放的 在加载
jxh 发表于 2018-1-18 09:34
同青鸟 ,这个项目我只做了个简易版
能够实现正常功能的那种
完全没有界面可言  加油呀 大兄弟  
没事可以私信交流
你可以把代码贴出来
jxh 发表于 2018-1-18 09:40
忘了告诉你了 这个板块不能发 求助帖
smuuupl 发表于 2018-1-18 09:54
主窗体里面写一个方法1,回调时你不得做播放停止操作吗,判断有正在播放的停止。再重新设置播放源,开始播放。
青衣惆怅 发表于 2018-1-18 10:25
用ffmpeg啊。
 楼主| wuaixql 发表于 2018-1-18 13:47
q344002781 发表于 2018-1-18 05:30
伙计 青鸟哪个校区的  我在航天桥这边这个

长沙实力····
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 10:55

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表