Как получить длину песни с MCI
Попробуйте найти длительность песни, например, ЧЧ: ММ: СС, для показа в моей программе.
Попробуй использовать
[DllImport("winmm.dll")]
private static extern long mciSendString(string strCommand,
StringBuilder strReturn, int iReturnLength, IntPtr hwndCallback);
с
public int CurrentTime()
{
MPlayerCommand = "status MediaFile length track number";
error = mciSendString(MPlayerCommand, returnData, 128, IntPtr.Zero);
return Convert.ToInt32(returnData.ToString());
}
Но в результате получаем ошибку - "неверная строка ввода"
Используйте для понимания этого. Как я понимаю для получения длины песни нужно использовать команду status MediaFile length track number
, где status
- основная команда, MediaFile
- сказать использовать текущий открытый MediaFile, length track number
- запрошенный параметр. Используйте этот метод только после открытия файла.
2 ответа
Я знаю, что это старый вопрос, но я думаю, что вы неправильно прочитали документацию, length track number
должен быть заменен length track 1
, length track 2
,... где number
это фактический трек #:)
У меня такая же проблема: с музыкой, которая длится 3 минуты, проблем нет. Однако, если вы превысите 4 минуты, появится ошибка.
lastinformation: С аудиофайлами "wav" ошибок не возникает.