2012-12-03 3 views
0

NAudio, 플레이어는 http://naudio.codeplex.com/wikipage?title=MP3을 참조하십시오. 모든 것은 잘 작동했지만 현재 시간과 지속 시간을 보여주는 트랙 바를 코딩 할 때도 노래의 위치를 ​​찾을 수 있기 때문에 타이머를 사용하여 현재 시간을 mainOutputStream.CurrentTime으로 업데이트했지만 형식이 좋지 않습니다. 다음 나는이처럼 포맷 :C# NAudio 트랙바

string curTime = mainOutputStream.CurrentTime.ToString(); 
string[] format = curTime.Split(':'); 
format[2] = format[2].Remove(2); 
curTime = format[1] + format[2]; 

하지만 format[2] = format[2].Remove(2);는 항상 오류를 반환합니다. 그리고 timespan에서도 바이트를 사용하는 방법은 없지만 averageBytePerSecond 또는 이와 비슷한 것을 사용하는 것이 싫으므로이 작업을 더 간단하고 효과적으로 수행 할 수 있습니까? 위 참조와 같은 모든 변수

감사합니다.

편집 : 문제는 내가이 방법을 사용 ~ 해결 :
취득 기간 :

string duration = mainOutputStream.TotalTime.ToString("mm\\:ss"); 
trackPosition.Maximum = (int)mainOutputStream.TotalTime.TotalSeconds; 

현재 시간 가져 오기 : 첫 번째

string curTimeString = mainOutputStream.CurrentTime.ToString("mm\\:ss"); 
int curTimeSeconds = (int)mainOutputStream.CurrentTime.TotalSeconds; 

:

string curTime = mainOutputStream.CurrentTime.ToString("mm\\:ss"); 
trackPosition.Value = (int)mainOutputStream.CurrentTime.TotalSeconds; 
+0

개체의 어떤 유형의 currentTime을하고 어떤 형식 그것이 reture 않고 당신이 어떤 형식이 필요합니까? –

+0

그것은'timespan'입니다, 나는 trackbar에 넣을 것입니다. 그래서'int'가 필요합니다. – giiYanJ

+0

초 Int? –

답변

1

이 시도를 오디오 트랙이 더 크면 단 몇 분만 포메이션됩니다. 다른 서식을 추가해야합니다. 그에

더 많은 정보는 여기에서 찾을 수 있습니다 : Timespan formatting

+0

CurrentTime.TotalSeconds는 'double'이며, 뒤에는 소수점이 표시됩니다. 어쨌든이를 제거하려면? – giiYanJ

+0

opps, 죄송합니다. int로 캐스팅하는 것을 잊어 버렸습니다. –

+0

woah 위의 고정, 하나님처럼 일했습니다! 기간 부분은 어떨까요? mainOutputStream.Length는 바이트를 제공하지만 길이는 계산할 수 있지만 평균 바이트/초는 계산하지 못합니다. 편집 : 거기에 'TotalTime' 개체가 있다는 것을 알았습니다. 시간대는 좋습니다. – giiYanJ