Android SDK MediaPlayer无法正确搜索

Android SDK MediaPlayer无法正确搜索,第1张

概述我有一个mp3文件,我的应用程序必须寻找该mp3文件的某些选定时间,然后从那里开始播放.我通过此方法将字符串时间转换为int值private static int convert(String time) { int quoteInd = time.indexOf(':'); int pointInd = time.indexOf('.');

我有一个mp3文件,我的应用程序必须寻找该mp3文件的某些选定时间,然后从那里开始播放.

我通过此方法将字符串时间转换为int值

private static int convert(String time) {    int quoteInd = time.indexOf(":");    int pointInd = time.indexOf(".");    int min = Integer.valueOf(time.substring(0,quoteInd));    int sec = Integer.valueOf(time.substring(++quoteInd,pointInd));    int mil = Integer.valueOf(time.substring(++pointInd,time.length()));    return (((min * 60) + sec) * 1000) + mil;} 

注意:我的蜇伤就像5:12.201,这意味着5分12秒和201毫秒.

我从MP3音频编辑器应用程序(它是用于windows)中获取这些时间,并且我使用KMPlayer应用程序(它用于windows)检查主题.这些时间对他们两个都是正确的.

但在我的应用程序中,当我寻找我的MediaPlayer时,音频不会从我选择的位置开始. (时间是正确的,但声音是不同的.)

我认为MediaPlayer没有正确地寻求那个时间.所以我在播放前通过调用getCurrentposition()来检查当前位置,但返回值和搜索值相同.

我对它没有任何想法.

编辑:

我的问题不是时间转换.

我正确地转换并寻求那里,但它发挥了那个时代没有预料到的东西.

这意味着KMPlayer和AndroID的时机不同.

我的问题是Way?怎么解决呢?

最佳答案您必须使用seekTo方法.这需要毫秒作为时间偏移.你的偏移是你想要开始的距离,例如从开始1分钟可以是你的偏移.

Note: my strings is like this 5:12.201 (Mins : Secs : Millisecs)

如果你想寻找像5:12.201这样的时间,那么使用seekTo(312201);

解释:
1000毫秒给你一秒,所以12000是12秒,60000是一分钟.

如果你想要5m:12s的时间那么做:

MyMins = 1000 * 60 * 5; //# 5 mins at 60 secs per minuteMySecs = 1000 * 12; //# 12 secsMyMilliSecs = 201; //# 201 millisecsSeekValue = (MyMins + MySecs + MyMilliSecs);seekTo(SeekValue); //# seeks to 312201 millisecs (is == 5 min & 12 secs & 201 ms)
总结

以上是内存溢出为你收集整理的Android SDK MediaPlayer无法正确搜索全部内容,希望文章能够帮你解决Android SDK MediaPlayer无法正确搜索所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1139345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存