/************************************************************ * * Hyphenate CONFIDENTIAL * __________________ * Copyright (C) 2016 Hyphenate Inc. All rights reserved. * * NOTICE: All information contained herein is, and remains * the property of Hyphenate Inc. * Dissemination of this information or reproduction of this material * is strictly forbidden unless prior written permission is obtained * from Hyphenate Inc. */ #import "EMCDDeviceManager+Remind.h" void EMSystemSoundFinishedPlayingCallback(SystemSoundID sound_id, void* user_data) { AudioServicesDisposeSystemSoundID(sound_id); } @implementation EMCDDeviceManager (Remind) // The system sound for a new message - (SystemSoundID)playNewMessageSound { // Path for the audio file NSURL *bundlePath = [[NSBundle mainBundle] URLForResource:@"EaseUIResource" withExtension:@"bundle"]; NSURL *audioPath = [[NSBundle bundleWithURL:bundlePath] URLForResource:@"in" withExtension:@"caf"]; SystemSoundID soundID; AudioServicesCreateSystemSoundID((__bridge CFURLRef)(audioPath), &soundID); // Register the sound completion callback. AudioServicesAddSystemSoundCompletion(soundID, NULL, // uses the main run loop NULL, // uses kCFRunLoopDefaultMode EMSystemSoundFinishedPlayingCallback, // the name of our custom callback function NULL // for user data, but we don't need to do that in this case, so we just pass NULL ); AudioServicesPlaySystemSound(soundID); return soundID; } - (void)playVibration { // Register the sound completion callback. AudioServicesAddSystemSoundCompletion(kSystemSoundID_Vibrate, NULL, // uses the main run loop NULL, // uses kCFRunLoopDefaultMode EMSystemSoundFinishedPlayingCallback, // the name of our custom callback function NULL // for user data, but we don't need to do that in this case, so we just pass NULL ); AudioServicesPlaySystemSound(kSystemSoundID_Vibrate); } @end