音乐播放器没有声音怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了音乐播放器没有声音怎么办?相关的知识,希望对你有一定的参考价值。
我的音乐播放器怎么没有声音?
参考技术A 你好:博客播放器音乐无法播放:
为何添加好了音乐链接,首页也有播放器的显示,为什么没有音乐播放。在保证机器声卡及驱动均运行正常的情况下,请参考如下几个原因:
一、音乐链接的格式错误
添加在音乐播放列表中的音乐链接必须为在网上的实际链接,即以“http://”开头并以“.mp3”结尾的链接地址,如“http://.../.../***.mp3”形式的链接,不能为本地文件的,如“C:/...../.../***.mp3”,否则音乐将无法播放。
二、音乐链接失效或连接较慢
如果你的音乐链接是从网络上搜索得来,那他们很有可能在一段时间之后失效,以至于你的博客音乐无法正常播放,这时你应该在音乐列表中将音乐文件的链接换成有效的音乐链接。
在选择音乐链接请先多试听,选择其中连接较快的音乐连接添加到播放器列表中以保证音乐可以正常播放。
三、博客音乐播放器只能播放mp3格式的音乐
新浪博客播放器只支持mp3格式的音乐链接,其他格式如:wma、rm、ra、ram、asf、mid等格式的音乐文件链接均无法播放,所以在添加链接之前请保证音乐文件的链接一定是mp3格式的。
四、网络原因
有时音乐没有播放出来不是因为音乐链接的问题,而是网络本上的速度原因,在线音乐的播放首先是要缓冲,把音乐的一部分先下载到本地的缓冲区中,由于网络的链接问题缓冲的速度会很慢,所以音乐无法及时播放。
freestreamer在后台通话结束后无法继续播放音乐(实际上没有声音)
【中文标题】freestreamer在后台通话结束后无法继续播放音乐(实际上没有声音)【英文标题】:freestreamer can not resume play music after call end when app in background(have no sound actually) 【发布时间】:2015-05-26 11:54:57 【问题描述】:我尝试用freestreamer播放音乐,app在后台来电,音乐可以停止,但是如果通话结束(CTCallStateDisconnected),音乐就不能再恢复了,可以捕捉通话结束时的状态(AVAudioSessionInterruptionTypeEnded) 在 FSAudioStream 函数里面命名
else if ([interruptionType intValue] == AVAudioSessionInterruptionTypeEnded)
if (self.wasInterrupted)
self.wasInterrupted = NO;
@synchronized (self)
[[AVAudioSession sharedInstance] setActive:YES error:nil];
fsAudioStreamPrivateActiveSessions[[NSNumber numberWithUnsignedLong:(unsigned long)self]] = @"";
if (self.wasContinuousStream)
/*
* Resume playing.
*/
[self play];
else
/*
* Resume playing.
*/
[self playFromOffset:_lastSeekByteOffset];
而且app还可以在后台捕捉到kFsAudioStreamPlaying的状态,表示又开始播放音乐了,但是我根本听不到音乐!!!有人可以知道如何解决这个问题吗? 顺便说一句,我也设置了
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
支持后台播放。
2015 年 5 月 27 日更新:
我看过一些关于:Background audio doesn't resume after a call,在这种情况下在代码中捕捉到这个中断通知,也可以检测到通话结束状态并重新启动音乐,但完全没有声音
【问题讨论】:
【参考方案1】:很高兴,解决这个问题:在后台,我们应该添加一些代码来支持后台播放
@synchronized (self)
[[AVAudioSession sharedInstance] setActive:YES error:nil];
[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
fsAudioStreamPrivateActiveSessions[[NSNumber numberWithUnsignedLong:(unsigned long)self]] = @"";
这将解决这个问题!
【讨论】:
我想我也遇到了同样的问题,你能告诉我更多关于解决方案的信息吗?你把这个@synchronized
代码放在哪里了?
@Tommecpe 在 Common/FSAudioStream.mm 文件中,link
是的,我已经尝试过了,但我没有看到任何变化...当我在后台时,我可以停止我的音频流,但我无法播放它。您是否进行了其他更改?
当我第一次在我的代码中使用[AVAudioSession sharedInstance]
时,我还添加了[[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayback error:nil];
,不仅在@synchronized
中以上是关于音乐播放器没有声音怎么办?的主要内容,如果未能解决你的问题,请参考以下文章