2017-06-05 9 views
1

私はthis questionを見つけましたが、少し古くなっています。彼らが推奨するthe example appのディレクトリアクセスが利用できなくなったようです。iOSで利用可能なシステムサウンドのリストを取得するにはどうすればよいですか?

The Apple documentation私も必要なものを持っていないようです。

私が必要とするのは、ビルトインサウンド(自分では提供しない)をリストし、自分のアプリのユーザーが再生するサウンドを選択できるようにすることです。

聞こえますか?

UPDATE:

NSURL *directoryURL = [NSURL URLWithString:@"/System/Library/Audio/UISounds"]; 
NSArray *keys = [NSArray arrayWithObject:NSURLIsDirectoryKey]; 

NSDirectoryEnumerator *enumerator = [fileManager 
            enumeratorAtURL:directoryURL 
            includingPropertiesForKeys:keys 
            options:0 
            errorHandler:^(NSURL *url, NSError *error) { 
             // Handle the error. 
             // Return YES if the enumeration should continue after the error. 
             return YES; 
            }]; 

for (NSURL *url in enumerator) { 
    NSError *error; 
    NSNumber *isDirectory = nil; 
    if (! [url getResourceValue:&isDirectory forKey:NSURLIsDirectoryKey error:&error]) { 
     // handle error 
    } 
    else if (! [isDirectory boolValue]) { 
     [audioFileList addObject:url]; 
    } 
} 

問題が列挙は常に空であることである:ここ

は、下記の例アプリに関連するコードです。私はこれがセキュリティ/サンドボックスの問題かもしれないと思う。

+1

私は、コードを試していないが、それはあなたが望むあなたを与える必要がありますように、これはなりますhttps://github.com/TUNER88/iOSSystemSoundsLibrary – DonMag

+0

感謝を。それは私が指摘しているアプリです。サウンドファイルをライブラリディレクトリにリストアップすることになっていますが、iOS 10以降で実行すると、大したものはありません。 –

+1

もう少し読んだ後で、このコードは刑破でしか動かないかもしれません...アップルのドキュメントにあるこのメモに基づいて、あなたがシステム音から得ることができるものは何か:警告音とシステム提供のユーザーインターフェイスのサウンドエフェクトは、iOSアプリケーションでは使用できません。たとえば、AudioServicesPlayAlertSound関数のパラメータとしてkSystemSoundID_UserPreferredAlert定数を使用すると、何も再生されません。 ' – DonMag

答えて

1

これを読んで、システムサウンドファイルのリストを取得するコードを見つけることができますが、 "jail break"デバイスでのみ可能です。

注:Appleのドキュメント(link)にこのノートをもとに

は、それは我々が「内部」サウンドクリップにアクセスしようとする際に多くの幸運を持っていません(しゃれのために残念)のように聞こえますシステム提供の警告音とシステム提供のユーザーインターフェイスのサウンドエフェクトは、iOSアプリケーションでは使用できません。たとえば、kSystemSoundID_UserPreferredAlert定数をAudioServicesPlayAlertSound関数のパラメータとして使用すると、何も再生されません。

関連する問題