请原谅我,如果已经提出这个问题,但我已经到处寻找,我能找到的只是来自iOS 5.0的老问题而且人们有相反的问题。
我的问题是我创建了一个我想在我的应用程序中使用的视频,最近我添加了音频。视频播放没问题,但音频无法播放。如果我在计算机中的任何视频播放器中播放视频,声音就在那里,所以我无法弄清问题是什么。
这是我的代码:
var movieViewController: MPMoviePlayerViewController?
func playVideoUsingViewController() {
if let
path = NSBundle.mainBundle().pathForResource("wakyIntro", ofType: "mp4"),
url = NSURL(fileURLWithPath: path),
movieViewController = MPMoviePlayerViewController(contentURL: url) {
self.movieViewController = movieViewController
movieViewController.moviePlayer.fullscreen = true
movieViewController.moviePlayer.controlStyle = .None
movieViewController.moviePlayer.scalingMode = .AspectFill
movieViewController.view.userInteractionEnabled = false
self.showViewController(movieViewController, sender: self)
println("Movie loaded")
} else {
println("Video failed")
}
}
然后我只是从我的ViewController调用它:
func mainMenuViewControllerDidPressPlay(mainMenuViewController: MainMenuViewController) {
game?.runAction(pressButton)
if !videoPlayed{
playVideoUsingViewController()
} else if !gameStarted {
gameStarted = true
game?.bird.startAnimation(game!)
game?.bird.startPhysics()
}
self.hideViewController(mainMenuViewController)
}
非常感谢任何想法或建议!
答案 0 :(得分:2)
这是基于@ user2709666的响应的swift解决方案
var session: AVAudioSession = AVAudioSession.sharedInstance()
session.setCategory("AVAudioSessionCategoryPlayback", withOptions: AVAudioSessionCategoryOptions.DefaultToSpeaker, error: nil)
在播放视频之前调用此方法。
编辑Swift 2.2:
do {
try AVAudioSession.sharedInstance().setCategory(AVAudioSessionCategoryPlayback)
try AVAudioSession.sharedInstance().setActive(true)
} catch let error as NSError {
print(error)
}
答案 1 :(得分:1)
进行AVAudioSession会话。 以下是代码:
var session = AVAudioSession.SharedInstance();
session.SetCategory(new NSString("AVAudioSessionCategoryPlayback"), AVAudioSessionCategoryOptions.DefaultToSpeaker, out error);
if (error != null)
{
Console.WriteLine(error);
}
并在您的视频播放器之前添加此内容。我相信这对你有用,我以前也遇到过同样的问题。