我正在使用以下代码通过WebResponse获取wmv文件.我正在使用一个线程来调用这个函数:
static void GetPage(object data)
{
// Cast the object to a ThreadInfo
ThreadInfo ti = (ThreadInfo)data;
// Request the URL
WebResponse wr = WebRequest.Create(ti.url).GetResponse();
// Display the value for the Content-Length header
Console.WriteLine(ti.url + ": " + wr.Headers["Content-Length"]);
string toBeSaved = @"C:\Users\Kevin\Downloads\TempFiles" + wr.ResponseUri.PathAndQuery;
StreamWriter streamWriter = new StreamWriter(toBeSaved);
MemoryStream m = new MemoryStream();
Stream receiveStream = wr.GetResponseStream();
using (StreamReader sr = new StreamReader(receiveStream))
{
while (sr.Peek() >= 0)
{
m.WriteByte((byte)sr.Read());
}
streamWriter.Write(sr.ReadToEnd());
sr.Close();
wr.Close();
}
streamWriter.Flush();
streamWriter.Close();
// …
Run Code Online (Sandbox Code Playgroud) 我正在使用媒体播放器播放音频和视频.我正在创建自己的按钮来增加和减少媒体播放器的音量.工作也很好.
问题:
即使达到0%音量后也能发声.如果播放器音量增加,系统音量也会增加.可能吗.如何实现这一任务.
控制:
<object id="mediaPlayer" classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"
height="1" standby="Loading Microsoft Windows Media Player components..."
type="application/x-oleobject" width="1">
<param name="fileName" value="" />
<param name="animationatStart" value="true" />
<param name="transparentatStart" value="true" />
<param name="autoStart" value="true" />
<param name="showControls" value="true" />
<param name="volume" value="70" />
</object>
Run Code Online (Sandbox Code Playgroud)
码:
function decAudio() {
if (document.mediaPlayer.Volume >= -1000) {
var newVolume = document.mediaPlayer.Volume - 100;
if (newVolume >= -1000) {
document.mediaPlayer.Volume = document.mediaPlayer.Volume - 100;
} else {
document.mediaPlayer.Volume = -1000;
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个PlayList加载到我的WMP实例中,我希望它只循环一首歌.到目前为止我用Google搜索的所有内容都告诉我这样做:
private AxWindowsMediaPlayer wmp;
wmp.settings.setMode("loop", true);
Run Code Online (Sandbox Code Playgroud)
但是,这似乎只会使整个PlayList重复出现.我想要的行为是,如果我在播放列表中的歌曲5播放时启用"重复",则歌曲5将在完成时自动重复(而不是继续播放歌曲6).大多数车载MP3播放器已经以这种方式工作 在我的C#程序中有没有一个很好的原生方式来做这个,或者我必须设计一个"黑客"解决方案,比如拦截下一首歌加载时发生的事件?
在Windows 7下,当我将一个mp3文件复制到我的iRiver H10时,我总是会得到一个对话框,提供"转换和复制"文件,或者"不,只是复制".mp3文件不受复制保护.H10是一个通过USB连接的mp3和wma播放器,但没有显示为驱动器号.它在Windows资源管理器中显示为连接的设备.这是一个Microsoft希望您通过其多媒体播放器访问的PlaysForSure设备,我不使用它.
如何禁用此对话框并始终只复制文件?
我希望有一个注册表项,或者可能是一个组策略设置,但我不是要修补一个dll.我的谷歌搜索发现了对话框字符串出现在wpdshell.dll中的事实.WPD显然代表Windows便携设备.
我在这里几乎没有想法......对于其他一切,将背景颜色设置为Color.Transparent或设置TransparencyKey工作正常...
我有一个mp4视频,我需要将其作为我的表单的"背景".为此,我目前正在使用WMP控件.我的问题:我不能在它上面添加任何控件,因为它们总是呈现背景.哪个看起来像**视频...
有什么建议?
c# vb.net visual-studio-2010 windows-media-player axwindowsmediaplayer
我有以下代码:http://pastebin.com/EgjbzqA2,它基本上只是http://www.dreamincode.net/forums/topic/57357-mymusic-player/的精简版.我希望程序重复播放一个文件,但是,此功能由于某种原因不起作用.程序播放每个文件一次然后停止.
Private Sub Player3_PlayStateChange(ByVal NewState As Integer) Handles Player3.PlayStateChange
Static Dim PlayAllowed As Boolean = True
Select Case CType(NewState, WMPLib.WMPPlayState)
Case WMPLib.WMPPlayState.wmppsReady
If PlayAllowed Then
Player3.controls.play()
End If
Case WMPLib.WMPPlayState.wmppsMediaEnded
' Start protection (without it next wouldn't play
PlayAllowed = False
' Play track
Player3.controls.play()
' End Protection
PlayAllowed = True
updatePlayer()
End Select
End Sub
Run Code Online (Sandbox Code Playgroud) 我正在使用TWindowsMediaPlayer并遇到问题。当前歌曲完成后,我无法加载新歌曲然后播放。
procedure TMainWinForm.WMPlayer1PlayStateChange(Sender: TObject;
NewState: Integer);
begin
if (NewState = wmppsMediaEnded) then
begin
WMPlayer1.URL := FileScanner.SelectSong;
writeln('Play triggered on ', String(WMPlayer1.URL));
WMPlayer1.controls.Play; // DOES NOT PLAY THE SONG!
end;
end;
Run Code Online (Sandbox Code Playgroud)
这会加载歌曲,但需要其他用户干预才能实际播放。我要让它继续下去的唯一方法是检查wmppsStopped,但是该事件发生了两次,所以我得到了列表中的所有奇数编号的歌曲。
关于如何使其正确运作的任何想法?
处理程序的可能参考是AxWMPLib._WMPOCXEvents_PlayStateChangeEventHandler
什么?
当我在方法中传递此事件时,
private void axWindowsMediaPlayer1_PlayStateChange(object sender,AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
Run Code Online (Sandbox Code Playgroud)
编译将引发以下错误:
找不到类型或名称空间名称“ AxWMPLib”(是否缺少using指令或程序集引用?)
我的C#WinForms程序中有一个"AxWindowsMediaPlayer"控件.当我正常更改URL
WindowsMediaPlayer1 的属性时,它工作正常并自动播放新的mp3文件.
当歌曲结束时,WindowsMediaPlayer1状态变为Stopped
,我想下一步URL
自动开始播放.
我使用了PlayStatChange
事件,所以当玩家状态是Stopped
,URL
将改变,但不自动播放!
播放器进入Ready
状态直到我按下WindowsMediaPlayer1上的播放按钮.
这是代码:
private void Form1_Load(object sender, EventArgs e)
{
WindowsMediaPlayer1.URL = "6.mp3"; //Works fine
}
private void button1_Click(object sender, EventArgs e)
{
WindowsMediaPlayer1.URL = "4.mp3"; //Works fine. It changes the music.
}
private void WindowsMediaPlayer1_PlayStateChange(object sender,
AxWMPLib._WMPOCXEvents_PlayStateChangeEvent e)
{
if (e.newState == 1) //1 is for "Stopped" State
WindowsMediaPlayer1.URL = "5.mp3";
// Here is the problem.
// URL Will change but player …
Run Code Online (Sandbox Code Playgroud) 我正在尝试编写一个Perl脚本,一个接一个地在Windows Media Player上运行目录中的视频n次.
出于某种原因,在第64次视频播放时,它会卡在系统上(1,@命令).
现在,该命令是"system(1,"C:\ Program Files(x86)\ Windows Media Player\wmplayer",$ path);" 在以下for循环中.
for (my $i = 0; $i < $n; $i++)
{
# do stuff
# Play video
system(1, "C:\\Program Files (x86)\\Windows Media Player\\wmplayer", $path);
sleep $duration + 1;
# do stuff
}
Run Code Online (Sandbox Code Playgroud)
我想知道为什么它一直停在第64个视频(我已经多次运行,它总是第64个).也许有人能更好地向我解释"system(1,@ commands)"?我所知道的是,在继续该程序之前,它不会等待@commands完成...或者如果有人知道关闭Windows Media Player的更好方法,那就太好了.=]
非常感谢!