Ничего из этого не помогло мне, так что вот рабочее решение ...
В Info.plist
добавьте строку:
UIViewControllerBasedStatusBarAppearance
и установите значение NO
.
Затем в AppDelegate в didFinishLaunchingWithOptions
добавьте эти строки:
[application setStatusBarHidden:NO];
[application setStatusBarStyle:UIStatusBarStyleLightContent];
У меня недостаточно репутации, чтобы комментировать, поэтому я просто отвечу.
Если ваши требования к воспроизведению звука "обманчиво просты" (вы просто хотите воспроизводить случайный звук, когда один пользователь winform что-то делает), тогда я бы использовал Попытку №4 выше.
В статье Ларри Остермана «что не так с этой частью кода 26» его «система» запускает новый поток потоков (для воспроизведения звука) при каждом нажатии клавиши. Он указывает, что после того, как он добился насыщения размера пула потоков по умолчанию в 500 примерно за 15 секунд ввода, это также было с клиент-серверным приложением, использующим асинхронный RPC, которое также использовало пул потоков. На самом деле не «обманчиво простое» приложение.
Я все еще использую старые добрые функции waveOut____ из Win32 API. Вот хороший пример кода:
http://www.codeproject.com/KB/audio-video/cswavplay.aspx
Изменить : гораздо более простое решение вашей проблемы - извлечь встроенный ресурс, сохраните его как настоящий файл, а затем используйте SoundPlayer для воспроизведения файла. Немного неуклюжий, но простой, и у вас не будет проблемы с утилизацией ресурсов.