如果要在特定位置启动.mp3文件的InputStream,如何使用InputStream.skip()方法计算要跳过的字节数?
我可以访问以下数据: 你要在几秒钟内开始的那一点
我试过搜索一个描述如何计算它的公式/算法,但我找不到它。你们中的任何人都知道怎么做吗?
- 编辑
我尝试做了frameize * framerate * position(秒),但是它被关闭了10倍。将它除以10仍然在歌曲中跳过50秒时将其关闭3秒,在跳过更大的块时甚至更多。
答案 0 :(得分:0)
我在C ++中进行相同的计算。如果谷歌搜索到达此页面,我就是这样做的。到目前为止它工作正常。我假设用户想跳到时间var webView : UIWebView?
override func viewDidLoad() {
if let foo = self.foo {
self.webView = UIWebView(frame: self.view.frame)
scrollView.addSubView(self.webView!)
}
}
override func viewDidAppear() {
// How do I use my conditionally created webView here?
func doSomething(webView: UIWebView) {
// Do stuff
}
if let myWebView = self.webView{
doSomething(webView: myWebView)
}
}
(以秒为单位):
var webView : UIWebView?
override func viewDidLoad() {
if let foo = self.foo {
self.webView = UIWebView(frame: self.view.frame)
scrollView.addSubView(self.webView!)
}
}
override func viewDidAppear() {
// How do I use my conditionally created webView here?
if let myWebView = self.webView{
self.doSomething(webView: myWebView)
}
}
func doSomething(webView: UIWebView) {
// Do stuff
}
有一点是frameSize并不总是相同的。特别地,第一帧和第二帧可能具有与其他帧不同的尺寸。所以最好分别测量它们。
我假设前两帧有不同的尺寸,你计算它们,然后整个计算将如下所示:
skipToTime
OFFSET是达到稳定帧大小所需的总字节数。如果需要2帧,那么:
int numberOfFrames = (skipToTime * sampleRate)/1152;
int skipPositionInBytes = (numberOfFrames * frameSize);