Media: fix detecting songs with CJK chars

This commit is contained in:
李通洲
2022-09-23 19:46:28 +08:00
parent 371b3a2d75
commit ee7231d87c
2 changed files with 20 additions and 7 deletions
+15 -6
View File
@@ -32,18 +32,27 @@ static const char* getMedia(FFMediaResult* result)
});
dispatch_group_enter(group);
__block const char* error = NULL;
MRMediaRemoteGetNowPlayingInfo(queue, ^(_Nullable CFDictionaryRef info) {
if(info != nil) {
ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoTitle"), &result->song);
ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoArtist"), &result->artist);
ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoAlbum"), &result->album);
if(info != nil)
{
error = ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoTitle"), &result->song);
if(!error)
{
ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoArtist"), &result->artist);
ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoAlbum"), &result->album);
}
}
else
error = "MRMediaRemoteGetNowPlayingInfo() failed";
dispatch_group_leave(group);
});
dispatch_group_enter(group);
MRMediaRemoteGetNowPlayingClient(queue, ^(_Nullable id clientObj) {
if (clientObj != nil) {
if (clientObj != nil)
{
CFStringRef identifier = MRNowPlayingClientGetBundleIdentifier(clientObj);
if (identifier == nil)
identifier = MRNowPlayingClientGetParentAppBundleIdentifier(clientObj);
@@ -65,7 +74,7 @@ static const char* getMedia(FFMediaResult* result)
if(result->song.length > 0)
return NULL;
return "MediaRemote failed";
return error;
}
void ffDetectMediaImpl(const FFinstance* instance, FFMediaResult* media)