简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发
简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发
阅读导航
- 本文背景
 - 代码实现
 - 本文参考
 - 源码
 
1. 本文背景
继续 MaterialDesignThemes 开源控件库学习,尤其是它的图标组件,本文设计的音乐播放器主界面设计使用该组件较多。


2. 代码实现
使用 .NET CORE 3.1 创建名为 “Player” 的WPF模板项目,添加1个Nuget库:MaterialDesignThemes.3.1.0-ci981。
解决方案主要文件目录组织结构:
- Player
- App.xaml
 - MainWindow.xaml
- MainWindow.xaml.cs
 
 
 
2.1 App.xaml文件引入样式
文件【App.xaml】,在 StartupUri 中设置启动的视图【MainWindow.xaml】,并在【Application.Resources】节点增加 MaterialDesignThemes库的样式文件:
<Application x:Class="Player.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:Player"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Light.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Primary/MaterialDesignColor.Blue.xaml" />
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignColors;component/Themes/Recommended/Accent/MaterialDesignColor.Indigo.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>
2.2 MainWindow.xaml音乐播放器主窗体
文件【MainWindow.xaml】,设计主界面,源码如下:
<Window x:Class="Player.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        MouseLeftButtonDown="MoveWindow_MouseLeftButtonDown"
        Title="播放器" Height="500" Width="300" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" WindowStyle="None" Foreground="LightSteelBlue">
    <Window.Resources>
        <ResourceDictionary>
            <Style x:Key="ScrollThumbs" TargetType="{x:Type Thumb}">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Thumb}">
                            <Grid x:Name="Grid">
                                <Rectangle HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto" Fill="Transparent" />
                                <Border x:Name="Rectangle1" CornerRadius="10" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="Auto" Height="Auto"  Background="{TemplateBinding Background}" />
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="Tag" Value="Horizontal">
                                    <Setter TargetName="Rectangle1" Property="Width" Value="Auto" />
                                    <Setter TargetName="Rectangle1" Property="Height" Value="7" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <!--ScrollBars-->
            <Style x:Key="{x:Type ScrollBar}" TargetType="{x:Type ScrollBar}">
                <Setter Property="Stylus.IsFlicksEnabled" Value="false" />
                <Setter Property="Foreground" Value="LightGray" />
                <Setter Property="Background" Value="DarkGray" />
                <Setter Property="Width" Value="10" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ScrollBar}">
                            <Grid x:Name="GridRoot" Width="19" Background="{x:Null}">
                                <Track x:Name="PART_Track" Grid.Row="0" IsDirectionReversed="true" Focusable="false">
                                    <Track.Thumb>
                                        <Thumb x:Name="Thumb" Background="{TemplateBinding Foreground}" Style="{DynamicResource ScrollThumbs}" />
                                    </Track.Thumb>
                                    <Track.IncreaseRepeatButton>
                                        <RepeatButton x:Name="PageUp" Command="ScrollBar.PageDownCommand" Opacity="0" Focusable="false" />
                                    </Track.IncreaseRepeatButton>
                                    <Track.DecreaseRepeatButton>
                                        <RepeatButton x:Name="PageDown" Command="ScrollBar.PageUpCommand" Opacity="0" Focusable="false" />
                                    </Track.DecreaseRepeatButton>
                                </Track>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger SourceName="Thumb" Property="IsMouseOver" Value="true">
                                    <Setter Value="{DynamicResource ButtonSelectBrush}" TargetName="Thumb" Property="Background" />
                                </Trigger>
                                <Trigger SourceName="Thumb" Property="IsDragging" Value="true">
                                    <Setter Value="{DynamicResource DarkBrush}" TargetName="Thumb" Property="Background" />
                                </Trigger>
                                <Trigger Property="IsEnabled" Value="false">
                                    <Setter TargetName="Thumb" Property="Visibility" Value="Collapsed" />
                                </Trigger>
                                <Trigger Property="Orientation" Value="Horizontal">
                                    <Setter TargetName="GridRoot" Property="LayoutTransform">
                                        <Setter.Value>
                                            <RotateTransform Angle="-90" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter TargetName="PART_Track" Property="LayoutTransform">
                                        <Setter.Value>
                                            <RotateTransform Angle="-90" />
                                        </Setter.Value>
                                    </Setter>
                                    <Setter Property="Width" Value="Auto" />
                                    <Setter Property="Height" Value="12" />
                                    <Setter TargetName="Thumb" Property="Tag" Value="Horizontal" />
                                    <Setter TargetName="PageDown" Property="Command" Value="ScrollBar.PageLeftCommand" />
                                    <Setter TargetName="PageUp" Property="Command" Value="ScrollBar.PageRightCommand" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ResourceDictionary>
    </Window.Resources>
    <Grid Background="Black">
        <Grid Background="#44444444" Margin="10" Height="300" VerticalAlignment="Top">
            <Grid VerticalAlignment="Top">
                <Button x:Name="ButtonFechar" Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Right" Width="20" Height="20" Margin="10,0" Click="ButtonFechar_Click">
                    <materialDesign:PackIcon Kind="Close" VerticalAlignment="Center" Width="20" Height="20">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <Button Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Left" Width="20" Height="20" Margin="10,0">
                    <materialDesign:PackIcon Kind="Plus" VerticalAlignment="Center" Width="20" Height="20">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <TextBlock Text="野狼disco" Margin="5" HorizontalAlignment="Center" />
            </Grid>
            <TextBlock Text="宝石Gem & 陈伟霆" Margin="25" HorizontalAlignment="Center" VerticalAlignment="Top"/>
            <Grid VerticalAlignment="Top" Margin="0,50">
                <Ellipse Width="150" Height="150" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <Ellipse.Stroke>
                        <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                            <GradientStop x:Name="c1" Color="Black" Offset="0.71"/>
                            <GradientStop Color="#FFB85219"/>
                            <GradientStop x:Name="c2" Color="#FEB14F18" Offset="0.6"/>
                        </LinearGradientBrush>
                    </Ellipse.Stroke>
                </Ellipse>
                <Ellipse Width="145" Height="145" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <Ellipse.Fill>
                        <RadialGradientBrush>
                            <GradientStop Color="#FF0C0604" Offset="1"/>
                            <GradientStop Color="#FF210900" Offset="0.047"/>
                            <GradientStop Color="#FF1D0800" Offset="0.602"/>
                        </RadialGradientBrush>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Width="135" Height="135">
                    <Ellipse.Fill>
                        <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131233622.png" Stretch="Uniform"/>
                    </Ellipse.Fill>
                </Ellipse>
                <Ellipse Fill="#7F000000"  Width="135" Height="135"/>
            </Grid>
            <Grid VerticalAlignment="Bottom" Margin="5">
                <Button Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Left">
                    <materialDesign:PackIcon Kind="RotateRight" VerticalAlignment="Center" Width="30" Height="30">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <Button x:Name="Anterior" Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}"  HorizontalAlignment="Left" Margin="50,0" Click="Anterior_Click">
                    <materialDesign:PackIcon Kind="ChevronLeft" VerticalAlignment="Center" Width="30" Height="30">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <Button Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="#00000000" BorderBrush="#70702222" HorizontalAlignment="Center">
                    <Button.Effect>
                        <DropShadowEffect Color="#FFD67619" RenderingBias="Quality" BlurRadius="40" Direction="0"/>
                    </Button.Effect>
                    <materialDesign:PackIcon Kind="Pause" VerticalAlignment="Center" Width="30" Height="30">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <Button x:Name="Proxima" Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}"  HorizontalAlignment="Right" Margin="50,0" Click="Proxima_Click">
                    <materialDesign:PackIcon Kind="ChevronRight" VerticalAlignment="Center" Width="30" Height="30">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
                <Button Style="{StaticResource MaterialDesignFloatingActionMiniAccentButton}" Background="{x:Null}" BorderBrush="{x:Null}" HorizontalAlignment="Right">
                    <materialDesign:PackIcon Kind="ShuffleVariant" VerticalAlignment="Center" Width="30" Height="30">
                        <materialDesign:PackIcon.Foreground>
                            <LinearGradientBrush EndPoint="0.5,1" MappingMode="RelativeToBoundingBox" StartPoint="0.5,0">
                                <GradientStop Color="#FFD69016"/>
                                <GradientStop Color="#FFD6511E" Offset="0.747"/>
                                <GradientStop Color="#FF9B330D" Offset="0.807"/>
                            </LinearGradientBrush>
                        </materialDesign:PackIcon.Foreground>
                    </materialDesign:PackIcon>
                </Button>
            </Grid>
        </Grid>
        <ListView VerticalAlignment="Bottom" Height="150" Margin="5" Foreground="LightSteelBlue">
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="01" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131234152.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="我的梦 - 张靓颖" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2016" VerticalAlignment="Center"/>
                    <TextBlock Text="4:04" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="02" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131234746.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="凉凉 – 杨宗纬 & 张碧晨" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2017" VerticalAlignment="Center"/>
                    <TextBlock Text="3:20" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="03" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131235020.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="如果这就是爱情 – 张靓颖" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2017" VerticalAlignment="Center"/>
                    <TextBlock Text="2:57" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="04" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131235218.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="女儿国 – 张靓颖" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2016" VerticalAlignment="Center"/>
                    <TextBlock Text="3:28" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="05" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131235356.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="另一个天堂 – 王力宏 & 张靓颖" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2017" VerticalAlignment="Center"/>
                    <TextBlock Text="3:22" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
            <ListViewItem>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="06" Margin="5" VerticalAlignment="Center"/>
                    <Ellipse Width="30" Height="30">
                        <Ellipse.Fill>
                            <ImageBrush ImageSource="https://dotnet9.com/wp-content/uploads/2020/01/20200131235528.png"/>
                        </Ellipse.Fill>
                    </Ellipse>
                    <TextBlock Text="我们说好的 – 张靓颖" Margin="10,0" VerticalAlignment="Center" Width="100" TextTrimming="CharacterEllipsis"/>
                    <TextBlock Text="2017" VerticalAlignment="Center"/>
                    <TextBlock Text="4:02" Margin="10,0" VerticalAlignment="Center"/>
                </StackPanel>
            </ListViewItem>
        </ListView>
    </Grid>
</Window>
简单说明:
- 界面中按钮使用开源控件库MD的【PackIcon】组件,统一风格使用了自定义前景色【Foreground】。
 - 列表控件【ListView】用于展示音乐播放列表,方便演示,每一项写死的,实际使用需要封装成模板,方便MVVM数据绑定。
 - 列表控件【ListView】的竖直滚动条样式进行了修改,可看资源定义,改为了整体和黑色背景比较搭配的白色。
 
下面是后台代码:文件【MainWindow.xaml.cs】,关闭窗体、窗体移动、上一首及下一首按钮简单点击等事件处理,因为是演示事例,所以写的简单。
using System.Windows;
using System.Windows.Input;
namespace Player
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
        }
        private void ButtonFechar_Click(object sender, RoutedEventArgs e)
        {
            Application.Current.Shutdown();
        }
        private void Proxima_Click(object sender, RoutedEventArgs e)
        {
            if (c1.Offset >= 0)
            {
                c1.Offset -= 0.01;
                c2.Offset -= 0.01;
            }
            else
            {
                c1.Offset = 1;
                c2.Offset = 0.89;
            }
        }
        private void Anterior_Click(object sender, RoutedEventArgs e)
        {
            if (c2.Offset <= 1)
            {
                c1.Offset += 0.01;
                c2.Offset += 0.01;
            }
            else
            {
                c1.Offset = 0.11;
                c2.Offset = 0;
            }
        }
        private void MoveWindow_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            DragMove();
        }
    }
}
3.本文参考
4.源码
演示代码已全部奉上,为了方便演示,代码中的图片使用本站外链,代码可直接拷贝并按代码结构组织编译即可运行。
可运行Demo点击即可下载: 【音乐播放器】。
除非注明,文章均由 Dotnet9 整理发布,欢迎转载。
转载请注明本文地址:https://dotnet9.com/7981.html
欢迎扫描下方二维码关注 Dotnet9 的微信公众号,本站会及时推送最新技术文章
时间如流水,只能流去不流回!
点击《【阅读原文】》,本站还有更多技术类文章等着您哦!!!
此刻顺便为我点个《【再看】》可好?
简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发的更多相关文章
- ios开发学习-  简易音乐播放器2 (基于iPhone4s屏幕尺寸)-- 歌词解析--plist文件应用--imageNamed图片加载耗内存
		
声明:(部分图片来自网络,如果侵犯了您的权益请联系我,会尽快删除!) 又是音乐播放器,不过这次和上次不一样了,准确说这次更像播放器了,初学者不建议看这个,可以先看前面一个音乐播放器(1),当然 我没加 ...
 - iso 开发学习--简易音乐播放器(基于iPhone4s屏幕尺寸)
		
三个按钮 一个进度条 贴图(软件中部分图片,来自网络,如果侵犯了您的权益,请联系我,会立刻撤下) 核心代码 // // ViewController.m // 08-10-MusicPlayer / ...
 - 10个免费开源的JS音乐播放器插件
		
点这里 音乐播放器在网页设计中有时候会用到,比如一些时尚类.音乐或影视类等项目,但这些 网页播放器 插件比较少见,所以这里为大家整理一个集合,也许会有用到的时候. 下面整理的播放器有些是支持自适应的, ...
 - js插件---10个免费开源的JS音乐播放器插件
		
js插件---10个免费开源的JS音乐播放器插件 一.总结 一句话总结:各种插件都有很多,多去找. 二.js插件---10个免费开源的JS音乐播放器插件 亲测可用 音乐播放器在网页设计中有时候会用到, ...
 - Android 实现简单音乐播放器(一)
		
今天掐指一算,学习Android长达近两个月了,今天开始,对过去一段时间的学习收获以及遇到的疑难杂症做一些总结. 简单音乐播放器是我自己完成的第一个功能较为完整的APP,可以说是我的Android学习 ...
 - vue——一个页面实现音乐播放器
		
请忽略下面这段文字年关将至,时间好歹又多出了些许.却不敢过度消遣.岁月未曾饶过我,我亦不想饶过岁月.且将它塞得膨胀,让这一年看似加更充实.不曾料想我一个爱些风花雪月.研墨行歌之人,却做起了碼农这一行当 ...
 - 一个简单的Android音乐播放器
		
Android小白的期末作业 Android期末项目,仅用作学习使用,在线音乐部分只获取了网易云热歌榜,API来自鼻子亲了脸 传送门: GitHub 参考: anddiencn 实现功能 展示出本地的 ...
 - SE Springer小组之《Spring音乐播放器》需求分析说明书二
		
2.1 目标 Spring音乐播放器软件为课程<软件工程>所开发的课程作业,主要意图是为访问计算机中的mp3格式的音频文件,并使其能够完成访问,读取,添加,保存,播放,切换音频文件等功能. ...
 - 基于Basys2开发板的简易电子琴和音乐播放器设计
		
背景:华中科技大学 电测综合实验 主要功能:Basys2开发板外接一个扬声器(或无源蜂鸣器也可)实现电子琴和音乐播放器的功能.其中由于开发板上只有4个按键,所以电子琴功能只做了4个音调,分别对应于4个 ...
 
随机推荐
- golang判断目录项中是目录还是文件。
			
package main import ( "fmt" "os") func main() { //目录的操作 fmt.Println("请输入文件目 ...
 - larabel Artisan Command 使用总结
			
larabel Artisan Command 使用总结 定义命令 在routes/console.php下定义命令 Artisan::command('ltf', function () { (ne ...
 - 网络流(最大流-Dinic算法)
			
摘自https://www.cnblogs.com/SYCstudio/p/7260613.html 网络流定义 在图论中,网络流(Network flow)是指在一个每条边都有容量(Capacity ...
 - springboot开发之使用外部servlet容器及对jsp的支持
			
一般而言,springboot是使用自己内嵌的servlet容器,比如tomcat等等,而且默认的模板引擎是thymeleaf,那么如何让springboot使用外部的servlet容器并支持对jsp ...
 - day02_数据类型转换、运算符、方法入门
			
day02_数据类型转换.运算符.方法入门 数据类型 基本数据类型 四类八种 整数型 (取值范围) byte(-128~127) short(-32768~32767) int(一般默认)(-21亿~ ...
 - 关于远程办公,微软MVP 15年研发团队的经验分享
			
今天是2月5日,春节假期结束后的第三天了.为了能够应对来势汹汹的疫情,众多互联网企业纷纷开启了远程办公模式.不知道各团队前两天的远程办公效果如何,我们 Worktile 管理层在大年初四就开始讨论远程 ...
 - Spring boot 学习中代码遇到的几个问题
			
1.报一大段红错 此时对象还是能创建成功的,解决方案参考链接https://blog.csdn.net/wanglin199709/article/details/99121487 2.无法创建对象 ...
 - 2019年,我花了3个月时间备考PMP
			
 经过几个月的准备,终于在2019年12月7日完成了PMP的考试,并于1月21日查到了成绩,喜获5A,意料之中.总结这次考试的具体情况:涉及题型虽然都没有超出大纲的范围,但是原题出现的概率似乎不高, ...
 - <状压DP>solution-POJ3311_Hie with the Pie
			
Hie with the Pie Description The Pizazz Pizzeria prides itself in delivering pizzas to its customers ...
 - 2.OpenStack 网络简介(neutron)
			
OpenStack 网络简介(neutron) 概述和组件 OpenStack 网络允许您创建和管理网络对象, 如网络.子网和端口, 其他 OpenStack 服务可以使用.插件可以实现, 以适应不同 ...
 
			
		