|
32 | 32 | }); |
33 | 33 |
|
34 | 34 | dispatch_group_enter(group); |
| 35 | + __block const char* error = NULL; |
35 | 36 | MRMediaRemoteGetNowPlayingInfo(queue, ^(_Nullable CFDictionaryRef info) { |
36 | | - if(info != nil) { |
37 | | - ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoTitle"), &result->song); |
38 | | - ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoArtist"), &result->artist); |
39 | | - ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoAlbum"), &result->album); |
| 37 | + if(info != nil) |
| 38 | + { |
| 39 | + error = ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoTitle"), &result->song); |
| 40 | + if(!error) |
| 41 | + { |
| 42 | + ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoArtist"), &result->artist); |
| 43 | + ffCfDictGetString(info, CFSTR("kMRMediaRemoteNowPlayingInfoAlbum"), &result->album); |
| 44 | + } |
40 | 45 | } |
| 46 | + else |
| 47 | + error = "MRMediaRemoteGetNowPlayingInfo() failed"; |
| 48 | + |
41 | 49 | dispatch_group_leave(group); |
42 | 50 | }); |
43 | 51 |
|
44 | 52 | dispatch_group_enter(group); |
45 | 53 | MRMediaRemoteGetNowPlayingClient(queue, ^(_Nullable id clientObj) { |
46 | | - if (clientObj != nil) { |
| 54 | + if (clientObj != nil) |
| 55 | + { |
47 | 56 | CFStringRef identifier = MRNowPlayingClientGetBundleIdentifier(clientObj); |
48 | 57 | if (identifier == nil) |
49 | 58 | identifier = MRNowPlayingClientGetParentAppBundleIdentifier(clientObj); |
|
65 | 74 | if(result->song.length > 0) |
66 | 75 | return NULL; |
67 | 76 |
|
68 | | - return "MediaRemote failed"; |
| 77 | + return error; |
69 | 78 | } |
70 | 79 |
|
71 | 80 | void ffDetectMediaImpl(const FFinstance* instance, FFMediaResult* media) |
|
0 commit comments