教你用MediaPlayer做个带进度条的音乐播放器

合集下载

Android多媒体MediaPlayer使用详解

Android多媒体MediaPlayer使用详解

Android多媒体MediaPlayer使⽤详解现在的⼿机功能越来越丰富了,遥想10年前,MP3,MP4,MP5,还是很流⾏的,博主当时读⾼中时很想拥有⼀台,可以听⾳乐和看电影。

可是条件有限,学校也禁⽌此东西,所以只能偷偷的玩。

⽽现在我们的⼿机也很早以前就⽀持了这些功能,⽽且界⾯和功能也远远超过了MP4。

好吧,说多了,今天本⽂介绍的是Andriod系统⾃带的Mediaplayer,和VideoView实现简单的⾳乐和视频的播放,⾄于想做出如酷狗⾳乐这样的APP的话,只要想做,应该也不难,都是基于此实现了功能的扩展。

Android的MediaPlayer包含了Audio和Video的播放功能,在Android的界⾯上,Music和Video两个应⽤程序都是调⽤MediaPlaer来实现的。

⼀、播放⾳频⽂件⾸先看看MediaPlaer的⽣命周期下⾯是MediaPlayer提供的常⽤⽅法⽅法说明MediaPlayer构造⽅法create创建⼀个要播放的多媒体getCurrentPosition得到当前播放位置getDuration得到⽂件的时间getVideoHeight得到视频的⾼度getVideoWidth得到视频的宽度isLooping是否循环播放isPlaying是否正在播放pause暂停prepare准备(同步)prepareAsync准备(异步)release释放MediaPlayer对象相关的资源reset重置MediaPlayer对象为刚刚创建的状态seekTo指定播放的位置(以毫秒为单位的时间)setAudioStreamType设置流媒体的类型setDataSource设置多媒体数据来源(位置)setDisplay设置⽤SurfaceHolder来显⽰多媒体setLooping设置是否循环播放setOnButteringUpdateListener⽹络流媒体的缓冲监听setOnErrorListener设置错误信息监听setOnVideoSizeChangedListener视频尺⼨监听setScreenOnWhilePlaying设置是否使⽤SurfaceHolder来保持屏幕显⽰setVolume设置⾳量start开始播放stop停⽌播放MediaPlayer的⼯作流程是这样的:1,⾸先创建MediaPlaer对象; *2,然后调⽤setDataSource()⽅法来设置⾳频⽂件的路径;**3,再调⽤prepare()⽅法使MediaPlayer进⼊到准备状态;4,调⽤start⽅法就可以播放⾳频。

meidiaplayer控件的使用方法

meidiaplayer控件的使用方法
MediaPlayer1.EnableContextMenu 是否允许在控件上点击鼠标右键时弹出快捷菜单
MediaPlayer1.AnimationAtStart 是否在播放前先播放动画
MediaPlayer1.ShowControls 是否显示控件工具栏
.Filter = "|*.mp3|Wave Filse(*.wav)|*.wav|(*.m3u)|*.m3u|Avi Flies(*.avi)|*.avi|Wmv Files(*.wmv)|*wmv|Mpg files(*.mpg)|*mpg"
.FileName = ""
.ShowOpen
End With
6-MpOneFourthScreen 屏幕大小的1/4
7-MpOneHalfScreen 屏幕大小的1/2
MediaPlayer1.ClickToPlay
是否允许单击播放窗口启动Media Player
我给你一些这方面的资料,你看看后应该可以做出你想要的东西
MediaPlayer1.Play 播放
MediaPlayer1.Stop 停止
MediaPlayer1.Pause 暂停
MediaPlayer1.PlayCount 文件播放次数
Command2.Enabled = True
Command3.Enabled = False
Command4.Enabled = True
Exit Sub
handler:
MsgBox "未选择媒体文件。", vbOKOnly, "错误信息"
End Sub �
2-MpHalfSize 原始大小的一半

前端开发实训案例实现一个简单的音乐播放器

前端开发实训案例实现一个简单的音乐播放器

前端开发实训案例实现一个简单的音乐播放器在本案例中,我们将一步步实现一个简单的音乐播放器,通过前端开发实训的方式,让大家掌握基本的前端开发技能和工具的使用。

下面是实现过程的详细步骤。

一、准备工作在开始实现音乐播放器之前,我们需要准备一些必要的工作。

首先,我们需要一个 HTML 页面来显示播放器的界面,可以通过创建一个名为index.html的文件来实现。

然后,我们需要下载一个适合的音乐播放器的样式文件和脚本文件,可以在一些开源的网站上找到并下载。

二、项目结构在开始编写代码之前,我们需要创建一个合理的项目结构。

在该案例中,我们可以创建以下几个文件夹和文件:- css文件夹:用于存放样式文件- js文件夹:用于存放脚本文件- img文件夹:用于存放图片资源- index.html:HTML页面的入口文件三、实现播放器界面1. 引入样式文件在index.html文件的头部,使用<link>标签引入样式文件。

例如:```html<link rel="stylesheet" href="css/player.css">```2. 创建播放器容器在index.html文件的<body>标签内,创建一个用于显示音乐播放器的容器。

例如:```html<div class="player-container"><!-- 在这里添加其他播放器相关的元素 --></div>```3. 添加播放器控制按钮在播放器容器中,添加用于控制音乐播放的按钮。

例如,添加播放按钮、暂停按钮和上一首、下一首按钮:```html<div class="player-container"><button id="play-btn">播放</button><button id="pause-btn">暂停</button><button id="prev-btn">上一首</button><button id="next-btn">下一首</button></div>```4. 显示音乐信息在播放器容器中,添加显示音乐信息的元素。

学会在电脑上使用音乐播放器

学会在电脑上使用音乐播放器

学会在电脑上使用音乐播放器音乐是我们日常生活中不可或缺的一部分,而电脑作为我们生活和工作中必不可少的工具之一,当然也能承担起音乐播放的功能。

学会在电脑上使用音乐播放器,不仅可以随时随地欣赏喜爱的音乐,还能提升我们的生活质量。

下面,我将向大家介绍一些常见的电脑音乐播放器以及它们的使用方法。

一、Windows Media PlayerWindows Media Player是Windows操作系统自带的一款音乐播放软件,拥有简单易用的界面和强大的功能。

1. 打开Windows Media Player:在桌面或开始菜单上找到Windows Media Player的图标,点击打开软件。

2. 添加音乐文件:点击播放器界面左上角的“文件”选项,在下拉菜单中选择“添加到”或“导入”,然后选择你的音乐文件所在的文件夹,点击“确定”即可将音乐添加到播放列表。

3. 播放音乐:在播放列表中选中你想要播放的音乐,点击“播放”按钮即可开始播放。

二、iTunesiTunes是苹果公司开发的一款音乐管理软件,可以在Windows和Mac系统上使用。

它同时也是iPhone和iPad等iOS设备的默认音乐同步工具。

1. 下载并安装iTunes软件:在苹果官方网站上下载iTunes,并按照安装向导完成安装过程。

2. 导入音乐文件:打开iTunes,点击左上角的“文件”选项,在下拉菜单中选择“添加文件到库”或“添加文件夹到库”,选择你的音乐文件或文件夹,并点击“打开”按钮导入音乐。

3. 播放音乐:在iTunes界面的左侧导航栏中选择你想要播放的音乐,点击音乐名称即可开始播放。

三、Foobar2000Foobar2000是一款功能强大、界面简洁的音乐播放器,适用于Windows系统。

虽然它缺乏更为华丽的界面设计,但其出色的音质和高度自定义的特性使其成为众多发烧友的首选。

1. 下载并安装Foobar2000软件:在官方网站上下载Foobar2000的安装程序,然后按照安装向导进行安装。

如何使用WindowsMediaPlayer进行音乐和视频播放

如何使用WindowsMediaPlayer进行音乐和视频播放

如何使用WindowsMediaPlayer进行音乐和视频播放第一章:WindowsMediaPlayer的介绍WindowsMediaPlayer是由微软公司开发的一款媒体播放软件,它支持播放音乐和视频文件,并提供了丰富的功能和调节选项,适用于Windows操作系统。

通过WindowsMediaPlayer,用户可以方便地播放各种格式的音乐和视频文件,同时还可以管理和组织自己的媒体库。

第二章:安装和启动WindowsMediaPlayer要使用WindowsMediaPlayer播放音乐和视频文件,首先需要安装该软件。

用户可以在微软官方网站上下载安装程序,然后按照安装提示进行操作。

安装完成后,在开始菜单中可以找到WindowsMediaPlayer的快捷方式。

双击快捷方式或者在搜索栏中输入“WindowsMediaPlayer”,即可启动该软件。

第三章:添加媒体文件到WindowsMediaPlayer在WindowsMediaPlayer的界面中,可以通过多种方式添加音乐和视频文件到媒体库。

首先,可以通过“文件”菜单中的“添加到库”选项,选择要添加的文件或者文件夹。

其次,还可以直接将文件拖拽到WindowsMediaPlayer的主界面。

添加完成后,所有的媒体文件都会被组织到媒体库中。

第四章:播放音乐文件在媒体库中选择一首音乐文件,双击该文件,或者点击播放按钮,WindowsMediaPlayer就会开始播放该音乐文件。

播放过程中,可以使用播放控制按钮进行暂停、停止、上一个曲目、下一个曲目等操作。

此外,可以通过音量控制按钮调节音量大小,通过进度条控制按钮快进和快退。

第五章:播放视频文件在媒体库中选择一个视频文件,双击该文件,或者点击播放按钮,WindowsMediaPlayer就会开始播放该视频文件。

与音乐文件播放类似,可以使用播放控制按钮进行暂停、停止、上一个视频、下一个视频等操作。

调节音量和进度的方式也与音乐播放一致。

Windows Media Player——axWindowsMediaPlayer控件研究

Windows Media Player——axWindowsMediaPlayer控件研究

Windows Media Player控件研究初级问题:我的那个定时提醒程序中要用到它,初步使用问题已解决。

基本使用步骤如下:一、往控件箱中添加此控件:wmp.dll二、往窗体上拖控件三、wmp.URL=XXXX;wmp.play()即可。

平常应用就这三步就OK了。

但是,我想写个播放器的话,就遇到了一些问题。

在dotnet中使用非基于dotnet的控件,需要做一些额外的事,不过这些事vs已经帮我们做好了,当我们拖了此控件进窗体时,vs会自动调用AxImp.exe,用它根据原有的dll或ocx 生成一个用AxHost类包装的新的一组程序集(更为精确的描述见msdn),于是根据WMPLib.dll生成两个文件:AxInterop.WMPLib.dll、Interop.WMPLib.dll。

这两个文件中包含了转化后的类。

包装后的控件继承自System.Windows.Forms.AxHost。

这是第一个问题,控件怎么使用呢?如果是拖控件,很简单,无论如何都能有效的使用。

但是,如果手工new创建控件的实例呢?那就不一定了。

我做过种种实验,获得如下的结论:在非可视化类中无法创建有UI的控件的实例,或者是在没有把实例加入到一个可视化的容器中时。

我实验了下面的代码:AxWMPLib.AxWindowsMediaPlayer wmp = new AxWMPLib.AxWindowsMediaPlayer(); this.Controls.Add(wmp); wmp.URL = "约定.mp3"; wmp.Ctlcontrols.play();这几行代码不一定能运行。

发现,如果这几行代码写在窗体的构造函数中,哪怕show出来都不能运行,只有写在Load或Load之后的事件中,并且把窗体show出来才有运行,否则会抛出一个错误:引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。

用WPF制作简单的播放器

用WPF制作简单的播放器

用WPF制作简单的播放器3 2011-4用WPF制作简单的播放器制作这个播放器我们要用到的一个控件是MediaElement。

在WPF中有个MediaPlayer类,这个类位于System.Windows.Media 命名空间下。

(提示:由于MediaPlayer是基于Windows Media Player 10 或更高版本,因此,只要Windows Media Player能播放的视频格式(如.wmv, .avi, .mpg等),在MediaPlayer或MediaElement中都能播放(前提是系统中必须安装Windows Media Player 10 或更高)。

)首先从工具箱里面拖出一个MediaElement,拖出3个按钮分别用于播放、暂停、停止,再拖出两个Slider分别用于控制播放进度和音量大小。

最后再调整一下布局界面,如下图:注意:MediaElement 的LoadedBehavior属性必须设置为 Manual 才能以交互方式停止、暂停和播放媒体。

XAML代码:01 <Window x:Class="Player.Window1"0 2xmlns="/winfx/2006/xaml/presen tation"03 xmlns:x="/winfx/2006/xaml"04 Title="Window1" Height="269" Width="357">05 <Grid>0 6<MediaElementSource="C:\Users\Administrator\Desktop\1.wmv" Margin="0,0,0,64 " Name="mediaElement1" LoadedBehavior="Manual" UnloadedBehavior="Stop" Stretch="Fill" MediaOpened="mediaElement1_MediaOpened" />07 <Button Height="33" Name="Play"VerticalAlignment="Bottom" FontSize="15" FontFamily="arial" Margin="13,0,0,3" HorizontalAlignment="Left" Width="34" Click="button1_Click">?</Button>08 <Button Height="33" Margin="55,0,0,3" Name="Pause"VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="36" Click="Pause_Click">█</Button>09 <Button Height="33" Margin="100,0,0,3" Name="Stop"VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="36" Click="Stop_Click">●</Button>10 <Slider Height="27" Margin="142,0,110,2"Name="Volume" VerticalAlignment="Bottom" HorizontalContentAlignment="Left"VerticalContentAlignment="Center" Minimum="0" Maximum="1" Value="0.5" ValueChanged="ChangeMediaVolume" Width="80" />11 <Slider Height="23" Margin="0,0,0,35"Name="TimeLine" VerticalAlignment="Bottom"ValueChanged="TimeLine_ValueChanged_1" Maximum="60" />1213 </Grid>14 </Window>下面是.cs文件中的功能代码:01 using System;02 using System.Collections.Generic;03 using System.Linq;04 using System.Text;05 using System.Windows;06 using System.Windows.Controls;07 using System.Windows.Data;08 using System.Windows.Documents;09 using System.Windows.Input;10 using System.Windows.Media;11 using System.Windows.Media.Imaging;12 using System.Windows.Navigation;13 using System.Windows.Shapes;1415 namespace Player16 {17 /// <summary>18 /// Window1.xaml 的交互逻辑19 /// </summary>20 public partial class Window1 : Window21 {22 public Window1()23 {24 InitializeComponent();25 }2627 private void button1_Click(object sender,RoutedEventArgs e)28 {29 mediaElement1.Play();30 //将音量调节到我们设定的音量值0.531 InitializePropertyValues();3233 }3435 private void Pause_Click(object sender,RoutedEventArgs e)36 {37 mediaElement1.Pause();38 }3940 private void Stop_Click(object sender,RoutedEventArgs e)41 {42 mediaElement1.Stop();43 }4445 private void ChangeMediaVolume(object sender,RoutedPropertyChangedEventArgs<double> e)46 {4748 mediaElement1.Volume =(double)Volume.Value;4950 }515253 void InitializePropertyValues()54 {55 mediaElement1.Volume =(double)Volume.Value;56 }5758 private void mediaElement1_MediaOpened(objectsender, RoutedEventArgs e) 59 {60 //获取媒体的时间长度,并赋予进度条的Maxinum61 TimeLine.Maximum =mediaElement1.NaturalDuration.TimeSpan.TotalMilliseconds;62 }6364 private void TimeLine_ValueChanged_1(objectsender, RoutedPropertyChangedEventArgs<double> e) 65 {66 //获取当前进度条的Value,也就是要播放的时间位置,定位媒体的位置67 int SliderValue = (int)TimeLine.Value;68 TimeSpan ts = new TimeSpan(0, 0, 0, 0,SliderValue);69 mediaElement1.Position = ts;7071 }727374 }75 }效果如下图所示:其他就不多说了,要提一点的是这个进度条这样写还不能和媒体的进度一样前进,要实现这个功能的话可以用MediaTimeline,有时间可以试一试。

C#windowsmediaplayer详细用法

C#windowsmediaplayer详细用法

C#windowsmediaplayer详细用法Media player控件基本使用步骤如下:属性/方法名说明:[基本属性]URL:String; 指定媒体位置,本机或网络地址uiMode:String; 播放器界面模式,可为Full, Mini, None, Invisible(不计大小写)playState:integer; 播放状态。

这个属性改变时同时引发PlayStateChange事件与StateChange事件。

取值范围为枚举型:WMPLib.WMPPlayState,它的成员如下:wmppsUndefined = 0; //未知状态wmppsStopped = 1; //播放停止wmppsPaused = 2; //播放暂停wmppsPlaying = 3; //正在播放wmppsScanForward = 4; //向前搜索wmppsScanReverse = 5; //向后搜索wmppsBuffering = 6; //正在缓冲wmppsWaiting = 7; //正在等待流开始wmppsMediaEnded = 8; //播放流已结束wmppsTransitioning = 9; //准备新的媒体文件wmppsReady = 10; //播放准备就绪wmppsReconnecting = 11; //尝试重新连接流媒体数据wmppsLast = 12; //上一次状态,状态没有改变在PlayStateChange中写代码可以防止播放rmvb等非默认类型的问题(用wmppsReady)。

enableContextMenu:Boolean; 启用/禁用右键菜单fullScreen:boolean; 是否全屏显示//播放器基本控制Ctlcontrols.play; 播放Ctlcontrols.pause; 暂停Ctlcontrols.stop; 停止Ctlcontrols.currentPosition:double; 当前进度Ctlcontrols.currentPositionString:string; 当前进度,字符串格式。

音乐播放之进度条-自定义

音乐播放之进度条-自定义

⾳乐播放之进度条-⾃定义[要求]1. 进度条控件打算使⽤系统提供的SeekBar2. SeekBar 要⽀持拖拉功能即:定点播放3. SeekBar 要反映播放位置即:播放到哪 SeekBar 就在哪[原理]1. ⾳乐定点播放:MediaPlayer.seekTo(int msecond) //单位:毫秒2. ⾳乐⽂件播放时间:MediaPlayer.getDuration()3. SeekBar 获取位置:SeekBar.getProgress()4. SeekBar 最⼤值: SeekBar.getMax()[组件]1、Button :播放控制如:暂停继续2、TextView :显⽰播放百分⽐3、SeekBar :进度条4、RadioGroup :显⽰所有sdcard ⾳乐⽂件[代码步骤]1. 定义界⾯:main.xml1. <?xml version="1.0" encoding="utf-8"?>2. <LinearLayout xmlns:android="<ahref="/apk/res/android">/apk/res/android</a>"3. &nbsp;&nbsp;&nbsp; android:orientation="vertical"4. &nbsp;&nbsp;&nbsp; android:layout_width="fill_parent"5. &nbsp;&nbsp;&nbsp; android:layout_height="fill_parent"6. &nbsp;&nbsp;&nbsp; >7. <LinearLayout xmlns:android="<ahref="/apk/res/android">/apk/res/android</a>"8. &nbsp;&nbsp;&nbsp; android:orientation="horizontal"9. &nbsp;&nbsp;&nbsp; android:layout_width="fill_parent"10. &nbsp;&nbsp;&nbsp; android:layout_height="wrap_content"11. &nbsp;&nbsp;&nbsp; >12. <Button13. &nbsp;android:id="@+id/cmd"14. &nbsp;android:text="Loading..."15. &nbsp;android:layout_width="90dip"16. &nbsp;&nbsp;&nbsp; android:layout_height="wrap_content"17. &nbsp;&nbsp;&nbsp; android:singleLine="true"18. />19. <TextView20. &nbsp;android:id="@+id/progress"21. &nbsp;android:text="Progress.."22. &nbsp;android:layout_width="50dip"23. &nbsp;&nbsp;&nbsp; android:layout_height="fill_parent"24. &nbsp;&nbsp;&nbsp; android:gravity="center"25. &nbsp;&nbsp;&nbsp; android:singleLine="true"26. />27. </LinearLayout>28. <SeekBar&nbsp;29. &nbsp;android:id="@+id/seekb"30. &nbsp;android:max="100"31. &nbsp;&nbsp;&nbsp; android:layout_width="fill_parent"32. &nbsp;&nbsp;&nbsp; android:layout_height="wrap_content"33. &nbsp;&nbsp;&nbsp; />34. </LinearLayout>复制代码2. View 初始化1. public void initialize(){2.3. sBar = (SeekBar)findViewById(R.id.seekb);4. rGroup = (RadioGroup)findViewById(R.id.radio);5. cmdButton = (Button)findViewById(R.id.cmd);6.7. mPlayer = new MediaPlayer();8. }复制代码3. 拖动SeekBar 且播放指定位置的⾳乐1.2. sBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener(){3. @Override4. public void onProgressChanged(SeekBar seekBar, int progress,5. boolean fromUser) {6. // TODO Auto-generated method stub7.8. }9. @Override10. public void onStartTrackingTouch(SeekBar seekBar) {11. // TODO Auto-generated method stub12. }13. @Override14. public void onStopTrackingTouch(SeekBar seekBar) {15. // TODO Auto-generated method stub16. int dest = seekBar.getProgress();17.18. int mMax = mPlayer.getDuration();19. int sMax = sBar.getMax();20.21. mPlayer.seekTo(mMax*dest/sMax);22.23. }24.25. });复制代码4. 刷新播放位置且使其实时变化//因为MediaPlayer没有播放进度的回调函数所以只能:开辟⼀个Thread 定时通知其刷新1.2. public void startProgressUpdate(){3. //开辟Thread ⽤于定期刷新SeekBar4. DelayThread dThread = new DelayThread(100);5. dThread.start();6. }复制代码⽽该Thread 具体实现为:1.2. private Handler mHandle = new Handler(){3. @Override4. public void handleMessage(Message msg){5. int position = mPlayer.getCurrentPosition();6.7. int mMax = mPlayer.getDuration();8. int sMax = sBar.getMax();9.10. sBar.setProgress(position*sMax/mMax);11. }12. };13. public class DelayThread extends Thread {14. int milliseconds;15.16. public DelayThread(int i){17. milliseconds = i;18. }19. public void run() {20. while(true){21. try {22. sleep(milliseconds);23. } catch (InterruptedException e) {24. // TODO Auto-generated catch block25. e.printStackTrace();26. }27.28. mHandle.sendEmptyMessage(0);29. }30. }31. }复制代码5. emulator 运⾏截图:。

WPF媒体播放器(MediaElement)实例,实现进度和音量控制

WPF媒体播放器(MediaElement)实例,实现进度和音量控制
所以 mePlayer.NaturalDuration.TimeSpan.TotalSeconds 不能在构造函数或者其他在MediaOpened事件前的方法中调用。
Xaml代码
<Grid> <Grid.RowDefinitions> <RowDefinition Height="180*"/> <RowDefinition Height="89*"/> </Grid.RowDefinitions> <MediaElement x:Name="mediaElement" LoadedBehavior="Manual" Volume="{Binding ElementName=sliderVolume,Path=Value}" Source="F:\MyDocument\视频\COOLUI理念篇.mp4" MediaOpened="mediaElement_MediaOpened" HorizontalAlignment="Left" Height="175" Margin="7,20,0,0" VerticalAlignment="Top" Width="275" Grid.RowSpan="2"/>
HorizontalAlignment="Left" Margin="119,52,0,0" Grid.Row="1" VerticalAlignment="Top" Width="164" Height="18"/> <Label x:Name="label1" Content="进度:" HorizontalAlignment="Left" Margin="73,21,0,0" Grid.Row="1" VerticalAlignment="Top" Height="25" Width="46"/> <Slider x:Name="sliderPosition"

插件让WindowsMediaPlayer无所不能-『软件应用技巧』-『计算...

插件让WindowsMediaPlayer无所不能-『软件应用技巧』-『计算...

插件让WindowsMediaPlayer无所不能-『软件应用技巧』-『计算...插件让Windows Media Player 无所不能Windows Media Player(以下简称WMP)有诸多缺点:如支持的音、视频格式不广,不能自由地选择声道等。

但其中最大的缺点,似乎来源于使用者本身的懒惰,试想一下,网上有那么多优异的插件,只要稍加利用就能让它具有近乎完美的性能,我们为什么还要抱残守缺,不自己动手去完善一下呢?万能播放我也行暴风影音等之所以被称为万能解码器,而不是播放器,主要原因是它只提供解码格式,底层播放仍依赖于WMP,因此,我们只要为WMP安装相应的解码包,如K-Lite Codec Pack,就能让它轻松地播放各种音、视频格式。

安装完成后重启WMP,你会发现以前不能为WMP识别的音、视频格式,现在已经能顺利播放了。

音效增强不含糊WMP的音效并不佳。

不过没关系,可以用SRS Audio Sandbox 来增强它,这是一款性能优异的终极音频增强插件。

利用它,即使是普通耳机,也可以营造出令人叹为观止的五声道环绕效果、重低音效果,增益效果非常明显。

安装完毕启动程序,在主界面中,单击“Speaker(扬声器)”项中的下拉箭头,在下拉菜单中选择“5.1Surround(五声道环绕)”。

以后用WMP播放音频时,即能享受到十分不错的五声道环绕效果了。

声道选择很方便WMP没有提供声道切换功能,在欣赏双语影片时尤为不便,而Morgan Stream Switcher插件的出现很好地解决了这一问题,安装后右击WMP标题栏,选择“播放/音频和语言音轨”,在出现的关联菜单中,会看到多了两个命令:“音频曲目1”和“音频曲目2”,以后播放双语影片时,只要选择其中之一,就能在双声道间方便地切换了。

Tag歌词随时看MP3文件中通常都包含Tag信息,这些信息可以让我们及时地了解到有关歌手、标题、专辑名称等详细信息。

AndroidMediaPlayer播放音乐并实现进度条

AndroidMediaPlayer播放音乐并实现进度条

AndroidMediaPlayer播放⾳乐并实现进度条提前⼯作,往sd卡⾥放⾳乐⽂件1、布局⽂件main.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="歌曲名:"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="blueflawer.mp3"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="播放"android:id="@+id/play_pause"/><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="重置"android:id="@+id/reset"/><SeekBarandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/seekbar"/></LinearLayout>2、activity类package cn.csdn.activity;import java.io.File;import java.io.IOException;import java.util.Timer;import java.util.TimerTask;import android.app.Activity;import android.media.MediaPlayer;import android.os.Bundle;import android.os.Environment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.SeekBar;import android.widget.SeekBar.OnSeekBarChangeListener;public class MyPlayerActivity extends Activity {private Button play_pause, reset;private SeekBar seekbar;private boolean ifplay = false;private MediaPlayer player = null;private String musicName = "blueflawer.mp3";private boolean iffirst = false;private Timer mTimer;private TimerTask mTimerTask;private boolean isChanging=false;//互斥变量,防⽌定时器与SeekBar拖动时进度冲突public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);player = new MediaPlayer();findViews();// 各组件}private void findViews() {play_pause = (Button) findViewById(R.id.play_pause);reset = (Button) findViewById(R.id.reset);play_pause.setOnClickListener(new MyClick());reset.setOnClickListener(new MyClick());seekbar = (SeekBar) findViewById(R.id.seekbar);seekbar.setOnSeekBarChangeListener(new MySeekbar());}class MyClick implements OnClickListener {File file = new File(Environment.getExternalStorageDirectory(),musicName);// 判断有没有要播放的⽂件if (file.exists()) {switch (v.getId()) {case R.id.play_pause:if (player != null && !ifplay) {play_pause.setText("暂停");if (!iffirst) {player.reset();try {player.setDataSource(file.getAbsolutePath());player.prepare();// 准备} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalStateException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}seekbar.setMax(player.getDuration());//设置进度条//----------定时器记录播放进度---------//mTimer = new Timer();mTimerTask = new TimerTask() {@Overridepublic void run() {if(isChanging==true) {return;}seekbar.setProgress(player.getCurrentPosition()); }};mTimer.schedule(mTimerTask, 0, 10);iffirst=true;}player.start();// 开始ifplay = true;} else if (ifplay) {play_pause.setText("继续");player.pause();ifplay = false;}break;case R.id.reset:if (ifplay) {player.seekTo(0);} else {player.reset();try {player.setDataSource(file.getAbsolutePath());player.prepare();// 准备player.start();// 开始} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalStateException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}break;}}}}//进度条处理class MySeekbar implements OnSeekBarChangeListener {public void onProgressChanged(SeekBar seekBar, int progress,boolean fromUser) {}public void onStartTrackingTouch(SeekBar seekBar) {isChanging=true;}public void onStopTrackingTouch(SeekBar seekBar) {player.seekTo(seekbar.getProgress());isChanging=false;}}//来电处理if(player != null){if(player.isPlaying()){ player.stop();}player.release();}super.onDestroy();}protected void onPause() {if(player != null){if(player.isPlaying()){ player.pause();}}super.onPause();}protected void onResume() {if(player != null){if(!player.isPlaying()){ player.start();}}super.onResume();}}。

学会使用WindowsMediaPlayer播放与管理音乐

学会使用WindowsMediaPlayer播放与管理音乐

学会使用WindowsMediaPlayer播放与管理音乐WindowsMediaPlayer是Windows操作系统内置的一款功能强大的媒体播放器软件,它能够播放多种音频和视频格式文件,并且提供了丰富的音乐管理功能。

本文将详细介绍如何学会使用WindowsMediaPlayer来播放和管理音乐文件。

第一章:安装与基本设置1.1 下载与安装WindowsMediaPlayer首先,我们需要从官方网站或者其他可靠的下载平台上下载WindowsMediaPlayer的安装包。

下载完成后,双击安装包进行安装。

按照安装向导的提示,选择安装路径和其他设置,最后完成安装即可。

1.2 配置播放器界面安装完成后,我们打开WindowsMediaPlayer,可以看到默认的播放器界面。

通过调整界面布局,我们可以自定义自己喜欢的界面风格。

点击“工具”选项,选择“选项”,在“播放器”选项卡中,我们可以调整界面的颜色、显示方式、视图模式等。

1.3 设置文件关联为了方便使用WindowsMediaPlayer来播放音乐文件,我们可以设置音乐文件的关联。

在“工具”选项中选择“选项”,切换到“文件类型”选项卡,选择要关联的音乐文件类型,点击“应用”按钮即可。

第二章:播放音乐文件2.1 导入音乐文件首先,我们需要在计算机中存储音乐文件。

可以从互联网上下载音乐文件,或者通过传输数据线将音乐文件从其他设备(如手机、MP3)中导入到计算机中。

然后,我们在WindowsMediaPlayer的菜单中选择“文件-添加文件到库”或者“文件-添加文件夹到库”,将音乐文件导入到WindowsMediaPlayer的媒体库中。

2.2 播放音乐文件在导入音乐文件后,我们可以通过以下方法播放音乐文件:- 单击左侧的“媒体库”,展开音乐分类,选择要播放的音乐文件,然后双击文件进行播放。

- 在Windows资源管理器中选择要播放的音乐文件,右键单击文件,选择“使用WindowsMediaPlayer打开”来直接播放音乐文件。

mediaplayer使用方法

mediaplayer使用方法

mediaplayer使用方法MediaPlayer是一款由Android提供的多媒体播放器,它可以用于播放各种类型的音频和视频文件,包括本地文件和网络文件。

它使用简单,操作方便,并具有多种自定义功能,可以满足不同用户的需求。

本文将介绍如何使用MediaPlayer进行音频和视频播放以及如何使用其它功能。

一、音频播放1.1 播放本地音频文件MediaPlayer可以很容易地播放本地音频文件,只需指定音频文件的路径即可。

以下是最简单的示例代码:```javaMediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.music);mediaPlayer.start();```其中,this代表当前的活动,R.raw.music是音频文件的资源ID。

MediaPlayer支持多种音频文件格式,如mp3、wav等格式。

需要注意的是,播放网络音频文件需要设置音频流类型,上述代码设置为STREAM_MUSIC,表示使用音乐流类型。

如果需要播放其它类型的音频流,可以根据需要修改。

```javaMediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.video);mediaPlayer.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mp) {mp.start();}});```其中,this代表当前的活动,R.raw.video是视频文件的资源ID。

当MediaPlayer准备好视频后,执行设置的回调函数onPrepared,此时开始播放视频。

需要注意的是,视频播放需要在SurfaceView或TextureView中展示,不能直接在界面上展示。

win7 delphi7使用mediaplayer播放mp3例子

win7 delphi7使用mediaplayer播放mp3例子

/question/499102772.html1、插入5个控件,一个mediaplayer控件,一个进度条控件TrackBar1,一个时间控件Timer1,一个标签控件Label1(实时显示进度),一个按键Button1(我这里用简单的用一个按键控制播放)。

2、代码:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, Grids, DBGrids, MPlayer, StdCtrls,ExtCtrls,Math, ComCtrls;typeTForm1 = class(TForm)MediaPlayer1: TMediaPlayer;Button1: TButton;TrackBar1: TTrackBar;Label1: TLabel;Timer1: TTimer;procedure Button1Click(Sender: TObject);procedure Timer1Timer(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;Mp3size:Integer;minutesMax,SecondMax:Integer ;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);var Mp3size:Integer;minutes,Second:Integer ;str:string;beginstr:='需要播放的MP3文件名';//这里可用OpenDialog控件来选择需要播放的MP3文件MediaPlayer1.FileName:=str;MediaPlayer1.Open;MediaPlayer1.Play;Mp3size:=MediaPlayer1.Length div 1000;minutesMax:=Trunc(Mp3size/60);SecondMax:= Mp3size mod 60;TrackBar1.Max:= Mp3size;Label1.Caption:=IntToStr(minutesMax)+':'+inttostr(SecondMax); Timer1.Enabled:=True;end;procedure TForm1.Timer1Timer(Sender: TObject);var minutes,Second:Integer ;Mp3sizeSta:Integer;beginTrackBar1.Position:=MediaPlayer1.Position div 1000;Mp3sizeSta:=MediaPlayer1.Position div 1000;minutes:=Trunc(Mp3sizeSta/60);Second:= Mp3sizeSta mod 60;Label1.Caption:=IntToStr(minutes)+':'+inttostr(Second)+'/'+ IntToStr(minutesMax)+':'+inttostr(SecondMax);end;end.。

android mediaplayer seekto用法

android mediaplayer seekto用法

android mediaplayer seekto用法在Android 开发中,MediaPlayer 的`seekTo` 方法用于将媒体播放器的当前播放位置移动到指定的时间点。

这对于实现音视频播放中的跳转、拖动进度条等功能非常有用。

以下是`seekTo` 方法的基本用法:```javaMediaPlayer mediaPlayer = new MediaPlayer();// 设置媒体文件的数据源,prepare 等操作省略...// 将播放器的当前位置移动到指定的时间点(毫秒为单位)int seekPositionInMillis = 5000; // 例如,将播放位置移动到第5 秒处mediaPlayer.seekTo(seekPositionInMillis);```在上述代码中,`seekPositionInMillis` 是你要跳转到的时间点,以毫秒为单位。

此方法可以在媒体播放的任何时候调用,但通常建议在媒体已经准备好(通过`prepare` 或`prepareAsync` 方法)之后再调用。

此外,你还可以通过监听MediaPlayer 的`OnSeekCompleteListener` 事件来获取`seekTo` 操作的完成情况:```javamediaPlayer.setOnSeekCompleteListener(new MediaPlayer.OnSeekCompleteListener() { @Overridepublic void onSeekComplete(MediaPlayer mediaPlayer) {// seekTo 操作完成后的处理逻辑}});```这样,当`seekTo` 操作完成时,会触发`onSeekComplete` 方法,你可以在这里进行相应的处理。

请注意,`seekTo` 方法不仅适用于本地音视频文件,还适用于在线媒体流。

但在使用时,需要确保媒体已经准备好并处于播放状态。

qmediaplayer的用法

qmediaplayer的用法

qmediaplayer的用法qmediaplayer是一个在Qt框架下用于音频和视频播放的类。

它提供了丰富的接口和功能,使开发者能够轻松地实现媒体播放功能。

本文将介绍qmediaplayer 的基本用法,包括创建和初始化播放器、加载媒体文件、控制播放、调节音量等方面的操作。

一、创建和初始化播放器要使用qmediaplayer,首先需要创建一个QMediaPlayer对象。

在Qt中,可以使用如下代码创建一个QMediaPlayer对象:cppQMediaPlayer *player = new QMediaPlayer;创建完成后,我们还需要对播放器进行初始化设置。

以下是一些常见的初始化设置:1. 指定媒体源:可以通过调用setMedia()方法来指定要播放的媒体源,例如本地文件路径或URL地址。

示例代码如下:cppQString filePath = "path/to/media";player>setMedia(QUrl::fromLocalFile(filePath));2. 配置音频输出设备:可以通过调用setAudioOutput()方法来配置音频输出设备,例如使用默认设备或指定的设备名称。

示例代码如下:cppQAudioDeviceInfo deviceInfo = QAudioDeviceInfo::defaultOutputDevice(); player>setAudioOutput(deviceInfo);3. 设置视频输出窗口:如果要播放视频,需要将视频输出到一个窗口中。

可以通过调用setVideoOutput()方法来设置视频输出窗口。

示例代码如下:cppQVideoWidget *videoWidget = new QVideoWidget;player>setVideoOutput(videoWidget);二、加载媒体文件在初始化设置完成后,可以调用play()方法来加载媒体文件并开始播放。

android播放音乐-进度条

android播放音乐-进度条

android播放⾳乐-进度条今天学渣研究了⼀下使⽤MediaPlayer播放⾳乐时加⼊进度条,进度条如今⽤的是android⾃带的seekbar,后期会跟换UI的,在之前可以播放⾳乐的基础上,如今加⼊的主要功能有两个:1实时显⽰播放进度2⼿动调节播放进度如今学渣新建了⼀个项⽬来进⾏測试,后期会和之前博客介绍的滑动页⾯进⾏整合,预计会在service建好后整合,敬请期待。

好了先上效果图:关于使⽤进度条的基本原理⾮常easy,⽤到了⼏个參数:1 歌曲的时长:单位为毫秒,MediaPlayer的getDuration(),只是要注意getDuration()的使⽤状态,在这篇中介绍了MediaPlayer的各个状态,⼤家能够去看看。

2 进度条的长度:android⾥进度条的长度默认应该是100,单位不详,没影响3 当前进度:对于歌曲⽽⾔,当前进度是当前播放的歌曲所在位置,单位毫秒,对于进度条⽽⾔,是在进度条中所占的⽐例。

主要是对这两个进⾏转化。

两个功能:1因为进度须要实时更新,因此在系统中⽤⼀个线程对UI线程发消息(每隔100毫秒),在UI线程中⽤Handler捕获消息,通过MediaPlayer的getCurrentPosition得到当前位置,进⽽计算seekbar相应的位置,对seekbar及时进⾏更新。

2对于⼿动调节歌曲进度时,通过获取调节到的位置,通过SeekBar.OnSeekBarChangeListener()监听滑动条,当滑动条调节位置确定后,通过onStopTrackingTouch()及时更新歌曲的进度,⽤MediaPlayer的seekTo(单位是毫秒)调节歌曲的进度。

详细代码例如以下:public class MainActivity extends Activity {MediaPlayer mediaPlayer;SeekBar seekBar;//本地歌曲的路径String path = "/storage/sdcard1/Music/浪漫满屋.mp3";//处理进度条更新Handler mHandler = new Handler(){@Overridepublic void handleMessage(Message msg){switch (msg.what){case 0://更新进度int position = mediaPlayer.getCurrentPosition();int time = mediaPlayer.getDuration();int max = seekBar.getMax();seekBar.setProgress(position*max/time);break;default:break;}}};@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_main);//初始化播放buttonButton playButton = (Button)findViewById(R.id.playButton);playButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubToast.makeText(MainActivity.this, "time is "+mediaPlayer.getDuration(), 1000).show(); play();}});//初始化暂停buttonButton pauseButton = (Button)findViewById(R.id.pauseButton);pauseButton.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubpause();}});seekBar = (SeekBar)findViewById(R.id.seekbar);seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {@Overridepublic void onStopTrackingTouch(SeekBar seekBar) {//⼿动调节进度// TODO Auto-generated method stubint dest = seekBar.getProgress();int time = mediaPlayer.getDuration();int max = seekBar.getMax();mediaPlayer.seekTo(time*dest/max);}@Overridepublic void onStartTrackingTouch(SeekBar arg0) {// TODO Auto-generated method stub}@Overridepublic void onProgressChanged(SeekBar arg0, int arg1, boolean arg2) {// TODO Auto-generated method stub}});}//初始化⾳乐播放void init(){//进⼊IdlemediaPlayer = new MediaPlayer();try {//初始化mediaPlayer.setDataSource(path);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);// prepare 通过异步的⽅式装载媒体资源mediaPlayer.prepareAsync();//后台线程发送消息进⾏更新进度条final int milliseconds = 100;new Thread(){@Overridepublic void run(){while(true){try {sleep(milliseconds);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}mHandler.sendEmptyMessage(0);}}}.start();} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}//測试播放⾳乐void play(){mediaPlayer.start();}//暂停⾳乐private void pause() {if (mediaPlayer != null && mediaPlayer.isPlaying()) {mediaPlayer.pause();}}//activity 退出时,停⽌播放⾳乐,释放资源@Overrideprotected void onDestroy() {// 在activity结束的时候回收资源if (mediaPlayer != null && mediaPlayer.isPlaying()) {mediaPlayer.stop();mediaPlayer.release();mediaPlayer = null;}super.onDestroy();}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu);return true;}}。

如何使用WindowsMediaPlayer创建播放列表

如何使用WindowsMediaPlayer创建播放列表

如何使用WindowsMediaPlayer创建播放列表如何使用Windows Media Player创建播放列表第一章:了解Windows Media PlayerWindows Media Player是一款由微软公司开发的多媒体播放器,它可以在Windows操作系统上播放多种音频和视频格式。

作为一款功能强大的媒体播放器,Windows Media Player还具备创建和管理播放列表的功能。

第二章:理解播放列表播放列表是媒体播放器中的一个重要功能,它是用户自定义的一系列音频或视频文件的集合。

通过创建播放列表,用户可以方便地组织和管理自己喜欢的音乐、电影、视频等媒体文件。

第三章:创建播放列表1. 打开Windows Media Player。

你可以通过开始菜单或在任务栏中搜索Windows Media Player来打开它。

2. 在Windows Media Player界面上方的菜单栏中,选择“文件”选项。

3. 在“文件”菜单中,选择“创建播放列表”选项。

4. 在弹出的对话框中,输入一个描述性的名称作为播放列表的名称。

5. 点击“确定”按钮来创建播放列表。

第四章:向播放列表添加媒体文件1. 在Windows Media Player界面左侧的“库”选项卡下,选择你想要添加到播放列表的媒体文件类型,如音乐、视频等。

2. 浏览你的计算机,找到目标文件夹中的媒体文件。

3. 将鼠标左键拖动文件到已创建的播放列表上方的“项目”窗格中。

4. 释放鼠标左键,文件将被添加到播放列表中。

第五章:管理播放列表1. 在Windows Media Player界面的右侧窗格中,你可以看到刚刚创建的播放列表。

2. 通过在播放列表上方的工具栏上选择“添加”或“删除”按钮,你可以向播放列表中添加或删除媒体文件。

3. 通过拖动媒体文件在播放列表中的顺序来改变播放顺序。

4. 通过重命名播放列表,你可以更改播放列表的名称。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

教你用MediaPlayer做个带进度条的音乐播
放器
先看效果图
很尴尬的一点就是大家没法听到音乐, 就只能看看图片.
布局文件
好像还有点小清新
MediaPlayer的使用
/**
* 初始化播放器MediaPlayer
*/
private void initMediaPlayer() {
//1. 加载选中歌曲
try {
// 设置音频文件路径, 或者是资源uri
if (mType == 1) {
(mFilePath);
} else if (mType == 2) {
Uri uri = (":///" + );
(this, uri);
} else {
return;
}
// 设置为循环, MediaPlayer预加载
(true);
();
} catch (Exception e) {
();
}
}
/**
* @param v 使用资源文件中的音乐
*/
public void addMusic(View v) {
mRawMusic = "";
et_input_(mRawMusic);
//2. 初始化播放器
mType = 2;
initMediaPlayer();
}
public void setDataSource(Context context, Uri uri);
public void setDataSource(String path);
你可以使用setDataSource来加载uri定位的文件, 也可以传入文件系统中的路径path来加载, 示例就是这么分的. 在这之后一定要记得调用prepare方法去预装文件.
/**
* @param v 播放按钮
*/
public void playMusic(View v) {
//1. 获取文件的持续时间
sb_(());
if (!()) {
();
}
}
/**
* @param v 暂停按钮
*/
public void pauseMusic(View v) {
if (()) {
();
}
}
/**
* @param v 停止按钮
*/
public void stopMusic(View v) {
if (()) {
();
initMediaPlayer();
}
}
这是三个按钮对应的点击方法, 要记得在播放前获取音乐文件的总时长, 并设置给进度条.
读取文件系统肯定是要权限的, 可以查看我之前的文章一个Util带你获取以上的读写sdcard权限
进度条的设置
/**
* 初始化进度条
*/
private void initSeekBar() {
//1. 设置进度条监听
isSeek = false;
sb_(new () {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
isSeek = true;
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
(());
isSeek = false;
}
});
//2. 开启线程同步进度条
new Thread() {
@Override
public void run() {
while (keepTrue) {
try {
(500);
} catch (InterruptedException e) {
();
}
if (!isSeek) {
sb_(());
}
}
}
}.start();
}
setOnSeekBarChangeListener的监听器有三个方法要重写, 除了用isSeek记录状态之外, 停止触摸之后使用MediaPlayer的seekTo方法是重点. 然后就是进度条的绘制肯定是要开新线程的. 有一点就是, 在while循环中, 条件参数不要直接写true, 要设置变量, 否则会警告啥的.
行了. 喜欢的快下载源码编译看看吧.。

相关文档
最新文档