我在我的一个 C# 应用程序中使用了 Sopcast activex 插件 (sopocx.ocx)。我想检索播放器状态(“正在缓冲频道”、“正在播放频道”、“频道离线...”)和缓冲百分比。这两个信息都显示在播放器上(我试图发布图片但我还没有足够的声誉)。
问题是 Sopcast activex 插件没有提供任何方法来检索这些信息。
有人知道如何做到这一点吗?
GetWindowText 产生一个空字符串...
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
private void testToolStripMenuItem_Click(object sender, EventArgs e)
{
IntPtr hwnd = sopcast.Handle;
StringBuilder lpString = new StringBuilder(256);
GetWindowText(hwnd, lpString, 256);
MessageBox.Show(lpString.ToString());
}
private void playToolStripMenuItem_Click(object sender, EventArgs e)
{
sopcast.SetSopAddress("sop://broker.sopcast.com:3912/123456789");
sopcast.SetChannelName("Channel");
sopcast.Play();
}
}
}