1
A
回答
8
從HOWTO章節:http://wiki.monotouch.net/HowTo/Sound/Play_a_Sound_or_Alert
var sound = SystemSound.FromFile (new NSUrl ("File.caf"));
sound.PlaySystemSound();
3
我不知道單聲道,但在iPhone SDK中,創建和播放聲音並不容易。其他選擇是將聲音作爲文件提供並播放,或者創建表示正弦曲線的數組,並將其包裝在音頻包裝中,並將其傳遞給許多聲音API中的一個。
如果單聲道被證明是有限的,那麼搜索stackoverflow.com作爲系統聲音服務和AVAudioPlayer作爲起點。
以下是播放聲音文件有兩種方式:
SoundEffect.c(基於蘋果)
#import "SoundEffect.h"
@implementation SoundEffect
+ (id)soundEffectWithContentsOfFile:(NSString *)aPath {
if (aPath) {
return [[[SoundEffect alloc] initWithContentsOfFile:aPath] autorelease];
}
return nil;
}
- (id)initWithContentsOfFile:(NSString *)path {
self = [super init];
if (self != nil) {
NSURL *aFileURL = [NSURL fileURLWithPath:path isDirectory:NO];
if (aFileURL != nil) {
SystemSoundID aSoundID;
OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)aFileURL, &aSoundID);
if (error == kAudioServicesNoError) { // success
_soundID = aSoundID;
} else {
NSLog(@"Error %d loading sound at path: %@", error, path);
[self release], self = nil;
}
} else {
NSLog(@"NSURL is nil for path: %@", path);
[self release], self = nil;
}
}
return self;
}
-(void)dealloc {
AudioServicesDisposeSystemSoundID(_soundID);
NSLog(@"Releasing in SoundEffect");
[super dealloc];
// self = nil;
}
-(void)play {
AudioServicesPlaySystemSound(_soundID);
}
-(void)playvibe {
AudioServicesPlayAlertSound(_soundID);
}
+(void)justvibe {
AudioServicesPlayAlertSound(kSystemSoundID_Vibrate);
}
@end
SoundEffect.h:
#import <AudioToolbox/AudioServices.h>
@interface SoundEffect : NSObject {
SystemSoundID _soundID;
}
+ (id)soundEffectWithContentsOfFile:(NSString *)aPath;
- (id)initWithContentsOfFile:(NSString *)path;
- (void)play;
- (void)playvibe;
+ (void)justvibe;
@end
如何使用它:
// load the sound
gameOverSound = [[SoundEffect alloc] initWithContentsOfFile:[mainBundle pathForResource:@"buzz" ofType:@"caf"]];
// play the sound
[gameOverSound playvibe];
這個當您想要以與iPhone的音量控制設置相同的音量播放聲音時非常有用,並且您不需要停止或暫停聲音。
另一種方法是:
+ (AVAudioPlayer *) newSoundWithName: (NSString *) name;
{
NSString *soundFilePath = [[NSBundle mainBundle] pathForResource: name ofType: @"caf"];
NSURL *fileURL = [[NSURL alloc] initFileURLWithPath: soundFilePath];
AVAudioPlayer *newPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL: fileURL
error: nil];
[fileURL release];
// if the sound is large and you need to preload it:
[newPlayer prepareToPlay];
return (newPlayer);
}
,並用它(你可以看到所有的演員,當你與AVAudioPlayer去):
timePassingSound = [AVAudioPlayer newSoundWithName:@"ClockTicking"];
[timePassingSound play];
// change the volume
[timePassingSound volume:0.5];
// pause to keep it at the same place in the sound
[timePassingSound pause];
// stop to stop completely, and go to beginning
[timePassingSound stop];
// check to see if sound is still playing
[timePassingSound isPlaying];
+1
如何播放聲音文件? – 2009-09-23 22:37:25
相關問題
- 1. MonoTouch:播放聲音
- 2. 如何中斷正在iPhone上播放的聲音(SDK或MonoTouch)?
- 3. 用Monotouch播放聲音
- 4. iPhone:如何在iPod上播放聲音?
- 5. MonoTouch播放系統聲音
- 6. 如何在iPhone上使用OpenAL播放循環聲音
- 7. Cocos2d - SimpleAudioEngine - 聲音不在iPhone上播放
- 8. 在iPhone上播放內置聲音
- 9. 聲音播放通知在iPhone上
- 10. 在iPhone上完美播放聲音
- 11. 嘗試在iPhone上播放聲音
- 12. 問題播放聲音的iPad設備上使用MonoTouch的
- 13. 無法在iPhone上使用JavaScript播放聲音,但可以在Android上播放
- 14. iPhone SDK:使用coreAudio播放聲音
- 15. 如何播放iPhone輕敲聲音?
- 16. 播放聲音問題iPhone?
- 17. 如何使用MonoTouch在iPhone上播放視頻?
- 18. QR碼在iPhone上播放視頻但不播放聲音
- 19. 使用JavaScript在mouseover上播放聲音
- 20. 在iPad上播放聲音,使用AudioToolbox
- 21. 如何在Xamarin.forms上播放聲音?
- 22. 使用Monotouch在iPhone中播放MJPEG流
- 23. 使用AudioServices在iPhone上停止播放聲音樣本
- 24. 使用雀歌在iPhone上播放聲音
- 25. 在Android上播放聲音
- 26. 在IOS上播放聲音
- 27. 如何在iPhone上播放鈴聲
- 28. 在iPhone上播放音頻
- 29. 如何在iPhone上錄製和播放聲音?
- 30. 使用系統聲音播放聲音
是否可以使用這種方法並仍然遵循手機的音量設置?在我的情況下,iPod touch的音量調低了一些,但sound.PlaySystemSound()以全音量播放... – Ender2050 2014-05-05 01:31:29