MPMoviePlayerViewController 仅显示视频但不播放音频 iOS 8
Posted
技术标签:
【中文标题】MPMoviePlayerViewController 仅显示视频但不播放音频 iOS 8【英文标题】:MPMoviePlayerViewController only display video but not playing the audio iOS 8 【发布时间】:2015-06-15 23:05:53 【问题描述】:如果这个问题已经被问过,请原谅我,但我到处找,我只能找到来自 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)
任何想法或建议将不胜感激!
【问题讨论】:
检查 1 个可能的原因,您的设备是否处于静音模式(静音键已关闭)。这只是一个可能的原因,除了所有与编码相关的东西。 【参考方案1】:这是基于@user2709666 的响应的快速解决方案
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)
【讨论】:
【参考方案2】:创建一个 AVAudioSession 会话。 以下是代码:
var session = AVAudioSession.SharedInstance();
session.SetCategory(new NSString("AVAudioSessionCategoryPlayback"), AVAudioSessionCategoryOptions.DefaultToSpeaker, out error);
if (error != null)
Console.WriteLine(error);
并将其添加到您的视频播放器之前。我相信这对你有用,我之前也遇到过同样的问题。
【讨论】:
非常感谢!这解决了问题,尽管我不得不稍微修改一下代码。那是什么语言?我注意到不是很快。 hI,这是 c# 语言,我使用 xamarin 制作 Ios 代码,从概念上讲,它与 api 名称一样,只是 launguge 语法不同;)以上是关于MPMoviePlayerViewController 仅显示视频但不播放音频 iOS 8的主要内容,如果未能解决你的问题,请参考以下文章