我在Delphi中创建了一个类似Winamp的音乐播放器.当然不是那么复杂.只是一个简单的.
但现在我想添加一个更复杂的功能:图书馆中的歌曲应根据用户的收听习惯自动评分.
这意味着:应用程序应该"理解"用户是否喜欢某首歌.不仅是他/她喜欢它还是喜欢它多少.
到目前为止我的方法(可以使用的数据):
你能帮帮我解决这个问题吗?我想提出一些想法.我不需要在Delphi中实现.
automation artificial-intelligence recommendation-engine rating audio-player
晚上好.我正在尝试用质量好的声音库写一个简单的midi播放器.面对播放midi文件的问题.问题是midi的所有曲目(鼓,鼓,贝斯,合成器等)都播放了,但它们只演奏一个乐器.我找到了OS X的解决方案,我需要iOS解决方案.我是否必须使用kAudioUnitSubType_Sampler为每个乐器audioUnit创建?
提示可以实时更改所选通道上的仪器吗?如何实施?对不起我的英语不好 ((
这是我的代码,它无法正常工作:
// Create a client
MIDIClientRef virtualMidi;
Check(MIDIClientCreate(CFSTR("Virtual Client"),
MyMIDINotifyProc,
NULL,
&virtualMidi));
// Create an endpoint
MIDIEndpointRef virtualEndpoint;
Check(MIDIDestinationCreate(virtualMidi, CFSTR("Virtual Destination"), MyMIDIReadProc, samplerUnit, &virtualEndpoint));
// Initialise the music sequence
NewMusicSequence(&midiSequence);
if (!midiFilePath) {
midiFilePath = [[NSBundle mainBundle]
pathForResource:@"carelesswhisper"
ofType:@"mid"];
}
NSLog(@"midiFilePath %@", midiFilePath);
// Create a new URL which points to the MIDI file
NSURL * midiFileURL = [NSURL fileURLWithPath:midiFilePath];
MidiParser *midiParser = [[MidiParser alloc] init];
NSData *data = [NSData dataWithContentsOfFile:midiFilePath];
[midiParser parseData:data];
NSString *midiInfo = …Run Code Online (Sandbox Code Playgroud) 我想在前台,后台播放音频文件,它应该与静音开关一起工作,即如果静音开关打开则不能播放,如果静音开关关闭则应播放音频.
**基本上我正在开发SIP呼叫应用程序.当用户接到电话时,应该播放声音/铃声.它应该在app处于后台/前台时播放,如果硬件静音开关为ON/OFF,它应该静音/取消静音.
为此,我使用了AVPlyaer以下代码.
AVAudioSession *session = [AVAudioSession sharedInstance];
[session setCategory:AVAudioSessionCategoryPlayback error:&error];
[session setActive:YES error:nil];
NSURL * audioFileUrl = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test1" ofType:@"mp3"]];
AVPlayer *player = [[AVPlayer alloc] initWithURL: audioFileUrl];
[player play];
Run Code Online (Sandbox Code Playgroud)
此外,我还在info.plist中添加了"App播放音频或使用AirPlay传输音频/视频"到后台模式
这是在两种模式下播放,但在硬件静音开关打开时不静音.如果我使用"AVAudioSessionCategoryAmbient"不在后台模式上播放.我使用AVAudioPlayer但在硬件开关打开时无法找到静音
请帮我修复它或任何其他方法来实现这一目标.提前致谢.
我使用UMPGoogle提供的示例,我的代码没有做任何更改,即使我没有尝试任何开箱即用的东西,我只是将您的项目导入我的工作区并在我的设备上进行了检查,发现我am not getting Thumb with Genres(流派歌曲)和流派列表......
虽然我应该从我们的JSON获得Thumb,但这是我尝试过的(但没有成功) -
holder.mImageView.setImageBitmap(description.getIconBitmap());
Run Code Online (Sandbox Code Playgroud)
更新#1 AS PER建议的@NageshSusarla 这里
holder.mTitleView.setText(description.getTitle());
holder.mDescriptionView.setText(description.getSubtitle());
AlbumArtCache cache = AlbumArtCache.getInstance();
Bitmap art = cache.getIconImage(url);
if (art == null) {
cache.fetch(url, new AlbumArtCache.FetchListener() {
@Override
public void onFetched(String artUrl, Bitmap bitmap, Bitmap icon) {
if (artUrl.equals(url)) {
holder.mImageView.setImageBitmap(icon);
}
}
});
} else {
holder.mImageView.setImageBitmap(bitmap);
}
holder.mImageView.setImageBitmap(description.getIconBitmap());
Run Code Online (Sandbox Code Playgroud)
并得到 Cannot resolve symbol 'url'
android json audio-player android-music-player android-layout android-resources
如何在Flutter中使用audioplayer 0.2.0播放本地mp3文件.
pubspec.yaml
flutter:
assets:
- sounds/music.mp3
Run Code Online (Sandbox Code Playgroud)
main.dart
Future<ByteData> loadAsset() async {
return await rootBundle.load('sounds/music.mp3');
}
// FIXME: This code is not working.
Future playLocal() async {
final result = await audioPlayer.play(loadAsset());
if (result == 1) setState(() => playerState = PlayerState.playing);
}
Run Code Online (Sandbox Code Playgroud)
我可以从rootBundle获取本地资产路径吗?我可以在audioPlayer上从ByteData支付音频吗?
我使用 TMediaPlayer 组件来播放音乐。
它适用于我的大部分曲目。但它不适用于某些曲目。当我想播放它们时,会显示以下错误消息:
这是德语,但大致意思是:
在项目 pMusicPlayer.exe 中,发生了类 EMCIDeviceError 的异常。消息:“启动 MCI 时出错。”。进程已停止。继续“单个命令/语句”或“开始”。
程序调用TMediaPlayer的“Play”程序后直接退出。
例如,以下文件发生此错误:
我用 128 kBit/s 的比特率编码了这个文件,因此文件大小为 3.70 MB:它工作正常!
第一个文件有什么问题?Windows Media Player 或其他程序可以毫无问题地播放它。
Delphi 的 TMediaPlayer 是否可能无法处理大文件(例如 > 5 MB)或具有高比特率(例如 > 128 kBit/s)的文件?
我能做些什么来解决问题?
附加问题: 为什么我不能使用 try/except 来阻止消息窗口?
try
Player.Play;
except
showmessage('Cannot be played');
end;
Run Code Online (Sandbox Code Playgroud)
这不起作用。
如果我通过iOS 7中的iPhone原生音乐播放器播放音乐并在锁定屏幕上访问它,那么我可以拖动播放器的搜索栏,即用户可以与之交互.
截图:

但是,如果我从支持背景音频播放的应用程序播放音乐,则在锁定屏幕上禁用播放器的搜索栏用户交互.我无法移动它.
截图:

我搜索了苹果的文档,但没有发现任何与此相关的内容.
我的问题是,它的iOS允许第三方应用程序与玩家的喜欢民族音乐应用程序锁定屏幕上搜索栏进行交互或做我必须添加一些设置它在我的代码?
我想阻止我的音乐播放器应用程序在每次应用程序启动时扫描目录中的音频文件.我怎样才能做到这一点?
我一直在使用以下代码来扫描音频文件.
public void getSongList() {
ContentResolver contentResolver=getContentResolver();
Uri musicUri=android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
Cursor musicCursor = contentResolver.query(musicUri, null, null, null, null);
if(musicCursor!=null && musicCursor.moveToFirst()) {
//get columns
int titleColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.TITLE);
int idColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media._ID);
int artistColumn = musicCursor.getColumnIndex
(android.provider.MediaStore.Audio.Media.ARTIST);
int albumIDColumn = musicCursor.getColumnIndex(MediaStore.Audio.Media.ALBUM_ID);
//add songs to list
do {
long thisId = musicCursor.getLong(idColumn);
String thisTitle = musicCursor.getString(titleColumn);
String thisArtist = musicCursor.getString(artistColumn);
long thisAlbumID=musicCursor.getLong(albumIDColumn);
Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart");
Bitmap albumArtBitMap=null;
Uri albumArtUri = ContentUris.withAppendedId(sArtworkUri, thisAlbumID);
try {
albumArtBitMap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), albumArtUri); …Run Code Online (Sandbox Code Playgroud) 我有音乐播放器的问题,大多数歌曲都给出了错误
错误域= MPErrorDomain代码= 4
测试设备有Apple音乐订阅,并且曲目在他们在Apple音乐应用程序中正常工作的应用程序上出错!
这是代码:
let applicationMusicPlayer = MPMusicPlayerController.systemMusicPlayer()
applicationMusicPlayer.setQueueWithStoreIDs([ID])
if #available(iOS 10.1, *)
{
applicationMusicPlayer.prepareToPlay { (error) in
if (error != nil)
{
print("[MUSIC PLAYER] Error preparing : \(String(describing: error))")
return
}else
{
self.start_timer();
self.applicationMusicPlayer.play()
}
}
}else
//Play directly ios below version 10.1
{
self.applicationMusicPlayer.play()
}
}
Run Code Online (Sandbox Code Playgroud)
但是我试过,当轨道出现这个错误时,我去了Apple音乐播放器并从那里播放它的工作,然后我回到我的应用程序并从我的应用程序播放它工作也很好,所以我需要去Apple音乐应用程序播放不在我的应用程序中播放的曲目,使它们在我的应用程序中工作!这有点奇怪为什么?
PS:测试设备有Apple音乐订阅
YouTube 可以选择更改视频的播放速度,从而加快或减慢视频的音频而不影响其音高。我知道有许多不同的算法可以做到这一点,但我很好奇Youtube 使用哪种特定算法,因为它似乎工作得相当好。
另外,有没有实现这个算法的开源库?