2014-02-18 38 views
0

我不知道我在做什麼錯,但我使用Scala以及Jave library。 我在這裏做錯了什麼?Scala:[InputFormatException:null]

這裏是我的代碼:

def main { 
    val source:File = new File("/Users/music/Desktop/leftright.wav") 
     val target:File = new File("leftright.mp3") 
     val audio:AudioAttributes = new AudioAttributes() 
     audio.setCodec("libmp3lame") 
     audio.setBitRate(new java.lang.Integer(128000)) 
     audio.setChannels(new java.lang.Integer(2)) 
     audio.setSamplingRate(new java.lang.Integer(44100)) 
     val attrs:EncodingAttributes = new EncodingAttributes() 
     attrs.setFormat("mp3") 
     attrs.setAudioAttributes(audio) 
     val encoder:Encoder = new Encoder() 
     encoder.encode(source, target, attrs) 
} 

def index = Action { 
    main // placed it here just to test 
    Ok(views.html.index("play"))) 
} 

我只是用實例從控制檯here


完整的堆棧跟蹤沿着以下:

[error] application - 

! @6hadcflf9 - Internal server error, for (GET) [/] -> 

play.api.Application$$anon$1: Execution exception[[InputFormatException: null]] 
    at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10.jar:2.2.1] 
    at play.api.DefaultApplication.handleError(Application.scala:399) [play_2.10.jar:2.2.1] 
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:165) [play_2.10.jar:2.2.1] 
    at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$12$$anonfun$apply$1.applyOrElse(PlayDefaultUpstreamHandler.scala:162) [play_2.10.jar:2.2.1] 
    at scala.runtime.AbstractPartialFunction.apply(AbstractPartialFunction.scala:33) [scala-library-2.10.3.jar:na] 
    at scala.util.Failure$$anonfun$recover$1.apply(Try.scala:185) [scala-library-2.10.3.jar:na] 
Caused by: it.sauronsoftware.jave.InputFormatException: null 
    at it.sauronsoftware.jave.Encoder.parseMultimediaInfo(Encoder.java:659) ~[jave-1.0.2.jar:na] 
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:840) ~[jave-1.0.2.jar:na] 
    at it.sauronsoftware.jave.Encoder.encode(Encoder.java:713) ~[jave-1.0.2.jar:na] 
    at controllers.Application$.main(Application.scala:42) ~[classes/:na] 
    at controllers.Application$$anonfun$index$1.apply(Application.scala:45) ~[classes/:na] 
    at controllers.Application$$anonfun$index$1.apply(Application.scala:44) ~[classes/:na] 

播放畫面:

[InputFormatException: null] 
In /Users/music/paydemo/app/controllers/Application.scala at line 42. 
39  attrs.setFormat("mp3") 
40  attrs.setAudioAttributes(audio) 
41  val encoder:Encoder = new Encoder() 
42  encoder.encode(source, target, attrs) 
43 } 
+0

@britva你錯了。你不能_reassign_ val,但你可以調用任何類型的方法。 –

+0

這不太可能與Scala有關;這是圖書館的問題。你也應該提供堆棧跟蹤。 –

+0

@AlexeyRomanov我在完整的堆棧跟蹤中編輯 – goo

回答

0

InputFormatException(根據java的的源極)

拋出如果源多媒體文件不能被解碼。

檢查您正確解碼文件的設置。這些設置取決於您的文件。