C#中如果播放 音频流数据(byte[])
音频流数据来的byte[],如何播放(没压缩也没干什么的,原始格式)
必须用WIN,API吗!如果是,用哪个API?
------解决方案--------------------system.media
可以用mediaplayer控件,
不一定要api吧,
还要看是什么格式的音频流。
------解决方案--------------------Interop.MediaPlayer.dll
你要是C#.net来写的话,是不需要通过API调用,只需要应用一写这个Dll就可以了.
我写的一个Demo  部分源码
private void button1_Click(object sender, System.EventArgs e)
		{//浏览MP3文件
			if(this.openFileDialog1.ShowDialog()==DialogResult.OK)
			{
				this.listView1.Items.Clear();
				string []FileNames=this.openFileDialog1.FileNames;
				foreach(string FileName in FileNames)
				{
					//取得文件大小
					FileInfo MyFileInfo=new FileInfo(FileName);
					float MyFileSize=(float)MyFileInfo.Length/(1024*1024);
					this.axMediaPlayer1.FileName=FileName;
					//取得作者信息
					string MyAuthor=this.axMediaPlayer1.GetMediaInfoString(MediaPlayer.MPMediaInfoType.mpClipAuthor);
					//取得不含路径的文件名
					string MyShortFileName=FileName.Substring(FileName.LastIndexOf("\\")+1);				
					MyShortFileName=MyShortFileName.Substring(0,MyShortFileName.Length-4);
					//填充歌曲列表	
					string[] SubItem={MyShortFileName,MyAuthor,MyFileSize.ToString().Substring(0,4)+"M",FileName};
					ListViewItem Item=new ListViewItem(SubItem);
					this.listView1.Items.Add(Item);
					this.listView1.Items[0].Selected=true;					
				}												
			}
		}
		private void button2_Click(object sender, System.EventArgs e)
		{//播放MP3文件
			if(this.listView1.Items.Count>0)
			{
				if(this.listView1.SelectedItems.Count>0)
				{
					int iPos=this.listView1.SelectedItems[0].Index;
					string FileName=this.listView1.Items[iPos].SubItems[3].Text;
					this.axMediaPlayer1.FileName=FileName;
					this.axMediaPlayer1.Play();
				}
			}
			else
			{
				MessageBox.Show("请选择歌曲!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
			}
		}
		private void button4_Click(object sender, System.EventArgs e)
		{//暂停播放
			if(this.axMediaPlayer1.FileName.Length>0)
				this.axMediaPlayer1.Pause();		
			else
			{
				MessageBox.Show("请选择歌曲!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
			}
		}
		private void button5_Click(object sender, System.EventArgs e)
		{//停止播放
			if(this.axMediaPlayer1.FileName.Length>0)
				this.axMediaPlayer1.Stop();		
			else
			{
				MessageBox.Show("请选择歌曲!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
			}
		}
		private void button6_Click(object sender, System.EventArgs e)
		{//上一首歌曲
			if(this.listView1.Items.Count>0)
			{
				if(this.listView1.SelectedItems.Count>0)
				{
					int iPos=this.listView1.SelectedItems[0].Index;
					if(iPos>0)
					{
						this.listView1.Items[iPos-1].Selected=true;
						string FileName=this.listView1.Items[iPos-1].SubItems[3].Text;
						this.axMediaPlayer1.FileName=FileName;
						this.axMediaPlayer1.Play();					
					}
					else
					{
						MessageBox.Show("已经是第一首歌曲!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
					}
				}
			}
			else
			{
				MessageBox.Show("请选择歌曲!","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
			}	
		}
		private void button7_Click(object sender, System.EventArgs e)
		{//下一首歌曲
			if(this.listView1.Items.Count>0)
			{
				if(this.listView1.SelectedItems.Count>0)
				{
					int iPos=this.listView1.SelectedItems[0].Index;
					if(iPos<this.listV