timer-参考网上代码写的C#音乐播放器,无法实现自动播放下一首歌,求助!

问题描述

参考网上代码写的C#音乐播放器,无法实现自动播放下一首歌,求助!
全部代码太长,只把自动播放部分的代码贴出来:
private void timer1_Tick(object sender EventArgs e)
{
// 用Timer控件控制连续播放
if (axWindowsMediaPlayer1.playState == WMPLib.WMPPlayState.wmppsMediaEnded)
{
if (playOne == false)
{
if (selectOne < listBox1.Items.Count)
{
selectOne += 1;
}
else if (selectOne == listBox1.Items.Count)
{
// 如果列表中所有媒体文件都播放完毕,则从头开始。
selectOne = 1;
}
}
listBox1.SelectedIndex = selectOne - 1;
Play(selectOne);
}
上述代码中selectOne表示正在播放的曲目的编号,playOne表示是否单曲循环。

我怀疑这个timer没有被触发,触发timer的代码如下:
private void button4_Click(object sender EventArgs e)
{
if (listBox1.SelectedIndex < 0) //当前没有在播放列表中选定任何文件时,从播放列表的第一个文件开始播放
{
selectOne = 1;
listBox1.SelectedIndex = 0;
}
else
{
selectOne = listBox1.SelectedIndex + 1;
}
Play(selectOne);
this.Invoke(new MethodInvoker(timer1.Start)); //触发timer,写成 //timer1.Enabled= true也不行
button7.Enabled = true;
button8.Enabled = true;
button9.Enabled = true;

解决方案

给你说下思路自己参考下

解决方案二:
实现自动播放一般是有2种思路:(1)根据时间差来自动播放下一曲。比如一首歌曲的时间时02:20.4,实际上在这个时间还没有完全播放完时就停止播放,总是差个零点几秒的。(2)第二种是根据播放器的状态实现自动播放下一曲。播放器的状态Ready Playing Pause Ended Stop,当到达Ended,并且在Ready之后就会实现自动播放下一曲。下面分别粘贴下代码,不喜勿喷。

解决方案三:
(1),根据时间差播放下一曲。
if (musicPlayer.currentMedia.duration - musicPlayer.Ctlcontrols.currentPosition <= 1)
{
int index = listBox1.SelectedIndex;//获得当前选中项的所有
listBox1.SelectedIndices.Clear(); //将之前选中项清空
if (index == -1)
{
return;
}
index++;
if (index == listBox1.Items.Count)//最后一首歌
{
index = 0;
}
//将改变后的索引重新赋值给当前选中项
listBox1.SelectedIndex = index;
//通过index在集合中拿到全路径,赋值给播放器的URL属性
musicPlayer.URL = listSong[index];
musicPlayer.Ctlcontrols.play();
}

 (2)根据播放状态播放下一曲。在WindowsMediaPlayer的PlayStateChange事件中添加以下代码: //当播放器的播放状态发生改变时,判断播放状态是否到达Ended,如果是,进行下一曲            if (musicPlayer.playState == WMPLib.WMPPlayState.wmppsMediaEnded)            {                int index = listBox1.SelectedIndex;//获得当前选中项的所有                listBox1.SelectedIndices.Clear(); //将之前选中项清空                if (index == -1)                {                    return;                }                index++;                if (index == listBox1.Items.Count)//最后一首歌                {                    index = 0;                }                //将改变后的索引重新赋值给当前选中项                listBox1.SelectedIndex = index;                //通过index在集合中拿到全路径,赋值给播放器的URL属性                musicPlayer.URL = listSong[index];                            }            if (musicPlayer.playState == WMPLib.WMPPlayState.wmppsReady)            {                //播放器自动的小bug                try                {                    musicPlayer.Ctlcontrols.play();                }                catch (Exception ex)                { }            }

解决方案四:
楼主,是你那个if (musicPlayer.currentMedia.duration - musicPlayer.Ctlcontrols.currentPosition <= 1)语句的大括号要包括全部

时间: 2024-08-18 04:22:48

timer-参考网上代码写的C#音乐播放器,无法实现自动播放下一首歌,求助!的相关文章

求教一音乐播放器插件,能够播放wav和mp3的

问题描述 求教一音乐播放器插件,能够播放wav和mp3的 网站里面需要一个既能播放mp3和wav音乐的播放器,哪位大侠能够提供一下. 解决方案 快播已倒,老夫无能为力了

网页音乐播放器怎么实现一边播放一边下载?

问题描述 网页音乐播放器怎么实现一边播放一边下载? 我想实现一个网页音乐播放器,但是不知道如何才能实现一边下载一边播放,由于音乐文件都比较大,如果一次性载入会导致访问速度很慢,请大神们指教,讲下如何去实现这一功能. 解决方案 网页都是通过cache机制,下载一部分,播放一部分

网页播放器如何让其播放音乐?

问题描述 大哥大姐们,我遇到问题了.就是自己已经有了一个flash音乐播放器,但这只是静态的,不能播放歌曲.当我把它嵌入到网页中,如何让其可以播放音乐呢?谢谢各位了!

写一个图片轮播效果的Demo(自动播放)附代码

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>js图片轮播切换</title> <style type="text/css"> .imgCon { width: 450px; height: 300px; border: 2px solid #DCDCDC; margin: 100px auto; positi

博客音乐播放器使用方法

  一.设置音乐播放器为自动播放模式 1.登陆你的博客 2.编辑我的博客(如点击前已显示为预览我的博客说明已经处于编辑状态 不可再点击) 3.鼠标指向博客左上横栏处的朝下箭头动态光标,点出现的装扮博客. 4.点设置首页内容. 5.在展开的模块内容里点击基本模块下的音乐前的空方框使其显示眼睛图标 6.在你的博客首页的左下方找到你刚刚建立的音乐模块点击音乐模块左上角的设置(现改为一扳手工具图标), 在出现的下拉菜单中点击自动播放前面的空方框使其变为勾选状态 二.添加音乐 1.点击音乐模块左上角的添加

asp.net实现在线音乐播放器示例

 这篇文章主要介绍了asp.net实现在线音乐播放器示例,需要的朋友可以参考下  代码如下: <HTML>      <HEAD><TITLE>Playback Example</TITLE>      </HEAD>      <BODY>      <script language="JavaScript">      function   addmedia(url)      {      //

as3 音乐播放器带控制播放进度

点击进度条音乐从鼠标点击处开始播放 制作过程: 1.新建FLASH CS3文档,保存名为"控制播放进度",保存在存有音乐的文件夹内.设置文档大小:252×114像素,帧频:24fps. 2.第一层名为"播放器背景",在该层画一个播放器背景. 3.新建图层,名为"播放进度框",画一个无边框的圆角矩形,边角半径为8,宽202高6,填充颜色为#006600,使其垂直水平于舞台. 4.新建图层,名为"播放进度背景",画一个无边框的圆角

Android编程开发音乐播放器实例_Android

本文实例讲述了Android编程开发音乐播放器,分享给大家供大家参考,具体如下: 音乐播放器中综合了以下内容: SeekBar.ListView.广播接收者(以代码的形式注册Receiver).系统服务.MediaPlayer 实现的功能: 1.暂停/播放.下一首/上一首,点击某一首时播放 2.支持拖动进度条快进 3.列表排序 4.来电话时,停止播放,挂断后继续播放 5.可在后台播放 效果图: 界面: main.xml: <?xml version="1.0" encoding=

Android应用开发之简易、大气音乐播放器实现专辑倒影效果_Android

今天要实现的功能是实现专辑倒影效果,这个功能已经属于图像处理方面的了,对图像处理我不怎么在行,等一下会介绍一个很实用的工具类,专门用来进行图像处理的.这个工具类不是我写的,我只是拿来用到自己的项目当中,这已经足够了,我已经完美实现我想要的效果. 效果图: < 一个很有用的工具类 /SimpleBeautyMusicPlayer/src/com/wwj/sb/utils/ImageUtil.java package com.wwj.sb.utils; import java.io.ByteArra