add Programmyday form github
This commit is contained in:
23
AudioPlayerMusterlösung/AudioFile.cs
Normal file
23
AudioPlayerMusterlösung/AudioFile.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
abstract class AudioFile
|
||||
{
|
||||
private string fileName;
|
||||
public AudioFile(string filename)
|
||||
{
|
||||
this.fileName = filename;
|
||||
}
|
||||
public string GetFileName()
|
||||
{
|
||||
return fileName;
|
||||
}
|
||||
public abstract void Play();
|
||||
|
||||
}
|
||||
}
|
||||
80
AudioPlayerMusterlösung/AudioPlayer.cs
Normal file
80
AudioPlayerMusterlösung/AudioPlayer.cs
Normal file
@@ -0,0 +1,80 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
internal class AudioPlayer
|
||||
{
|
||||
private AudioFile[] audiofiles;
|
||||
|
||||
public AudioPlayer(int max)
|
||||
{
|
||||
audiofiles = new AudioFile[max];
|
||||
}
|
||||
public void AddFile(AudioFile audiofile)
|
||||
{
|
||||
for (int i = 0; i < audiofiles.Length; i++)
|
||||
{
|
||||
if (audiofiles[i] is null)
|
||||
{
|
||||
audiofiles[i] = audiofile;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
public void RemoveFile(int id)
|
||||
{
|
||||
if (id >= 0 && id < audiofiles.Length)
|
||||
{
|
||||
audiofiles[id] = null;
|
||||
}
|
||||
}
|
||||
public void Play(int id)
|
||||
{
|
||||
if (id >= 0 && id < audiofiles.Length && audiofiles[id] is null)
|
||||
{
|
||||
audiofiles[id].Play();
|
||||
}
|
||||
}
|
||||
public void PlayAll()
|
||||
{
|
||||
foreach (AudioFile audio in audiofiles)
|
||||
{
|
||||
if (audio is not null)
|
||||
{
|
||||
audio.Play();
|
||||
}
|
||||
}
|
||||
}
|
||||
public void PlayShuffle()
|
||||
{
|
||||
Random rnd = new Random();
|
||||
AudioFile[] playFiles = new AudioFile[audiofiles.Length];
|
||||
for (int i = 0; i < playFiles.Length; i++)
|
||||
{
|
||||
playFiles[i] = audiofiles[i];
|
||||
}
|
||||
while (playFiles.Length > 0)
|
||||
{
|
||||
int playFile = rnd.Next(playFiles.Length);
|
||||
if (playFiles[playFile] is not null)
|
||||
{
|
||||
playFiles[playFile].Play();
|
||||
}
|
||||
AudioFile[] newArray = new AudioFile[playFiles.Length - 1];
|
||||
for (int i = 0; i < playFile; i++)
|
||||
{
|
||||
newArray[i] = playFiles[i];
|
||||
}
|
||||
for (int i = playFile; i < newArray.Length; i++)
|
||||
{
|
||||
newArray[i] = playFiles[i + 1];
|
||||
}
|
||||
playFiles = newArray;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
10
AudioPlayerMusterlösung/AudioPlayerMusterlösung.csproj
Normal file
10
AudioPlayerMusterlösung/AudioPlayerMusterlösung.csproj
Normal file
@@ -0,0 +1,10 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
17
AudioPlayerMusterlösung/FLACFile.cs
Normal file
17
AudioPlayerMusterlösung/FLACFile.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
internal class FLACFile : AudioFile
|
||||
{
|
||||
public FLACFile(string filename) : base(filename) { }
|
||||
public override void Play()
|
||||
{
|
||||
Console.WriteLine($"FLAC: {GetFileName()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
17
AudioPlayerMusterlösung/MP3File.cs
Normal file
17
AudioPlayerMusterlösung/MP3File.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
internal class MP3File : AudioFile
|
||||
{
|
||||
public MP3File(string filename) : base(filename) { }
|
||||
public override void Play()
|
||||
{
|
||||
Console.WriteLine($"MP3: {GetFileName()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
34
AudioPlayerMusterlösung/Program.cs
Normal file
34
AudioPlayerMusterlösung/Program.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
static void Main(string[] args)
|
||||
{
|
||||
AudioPlayer iPod = new AudioPlayer(99);
|
||||
iPod.AddFile(new MP3File("titel 1"));
|
||||
iPod.AddFile(new MP3File("titel 2"));
|
||||
iPod.AddFile(new MP3File("titel 3"));
|
||||
iPod.AddFile(new MP3File("titel 4"));
|
||||
iPod.AddFile(new MP3File("titel 5"));
|
||||
iPod.AddFile(new WAVFile("titel 6"));
|
||||
iPod.AddFile(new WAVFile("titel 7"));
|
||||
iPod.AddFile(new WAVFile("titel 8"));
|
||||
iPod.AddFile(new WAVFile("titel 9"));
|
||||
iPod.AddFile(new WAVFile("titel 10"));
|
||||
iPod.AddFile(new WAVFile("titel 11"));
|
||||
iPod.AddFile(new WAVFile("titel 12"));
|
||||
iPod.AddFile(new FLACFile("titel 13"));
|
||||
iPod.AddFile(new FLACFile("titel 14"));
|
||||
iPod.AddFile(new FLACFile("titel 15"));
|
||||
iPod.AddFile(new FLACFile("titel 16"));
|
||||
iPod.AddFile(new FLACFile("titel 17"));
|
||||
iPod.AddFile(new FLACFile("titel 18"));
|
||||
iPod.AddFile(new MP3File("titel 19"));
|
||||
iPod.AddFile(new MP3File("titel 20"));
|
||||
|
||||
iPod.PlayAll();
|
||||
Console.WriteLine();
|
||||
iPod.PlayShuffle();
|
||||
}
|
||||
}
|
||||
}
|
||||
17
AudioPlayerMusterlösung/WAVFile.cs
Normal file
17
AudioPlayerMusterlösung/WAVFile.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace AudioPlayerMusterlösung
|
||||
{
|
||||
internal class WAVFile : AudioFile
|
||||
{
|
||||
public WAVFile(string filename) : base(filename) { }
|
||||
public override void Play()
|
||||
{
|
||||
Console.WriteLine($"WAV: {GetFileName()}");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user