我已經安裝了Red5服務器。我創建了一個與oflaDemo相同的自定義應用程序。我可以在我的應用程序的/ streams文件夾中播放視頻,我的應用程序名稱是demo.I要將我的應用程序訪問視頻的目錄RED5_HOME/demo/webapps/streams更改爲共享機器中的文件夾。我可以切換到本地機器的目錄,例如「c:\ streams」。我使用CustomFileNameGenerator實現了IStreamFilenameGenerator,實現了這一點。但我無法訪問共享文件夾。這裏是我CustomFileNameGenerator類在Red5中自定義流播放路徑以從共享機器訪問文件
import java.io.File;
import org.apache.log4j.Logger;
import org.red5.server.api.scope.IScope;
import org.red5.server.api.stream.IStreamFilenameGenerator;
public class CustomFilenameGenerator implements IStreamFilenameGenerator {
Logger log = Logger.getLogger(CustomFilenameGenerator.class);
/** Path that will store recorded videos. */
/public String recordPath = "recordedStreams/";/
/** Path that contains VOD streams. */
public String playbackPath;
/** Set if the path is absolute or relative */
public Boolean resolvesAbsolutePath;
public String generateFilename(IScope scope, String name, GenerationType type) {
// Generate filename without an extension.
return generateFilename(scope, name, null, type);
}
public String generateFilename(IScope scope, String name, String extension, GenerationType type) {
String filename = null;
if (type == GenerationType.PLAYBACK)
{
filename = playbackPath + name;
}
log.info("file Name " + filename);
if (extension != null)
// Add extension
filename += extension;
log.info("Extension and file name " + filename);
return filename;
}
public boolean resolvesToAbsolutePath()
{
log.info("resolvesAbsolutePath" + resolvesAbsolutePath);
return resolvesAbsolutePath;
}
public void setPlaybackPath(String playbackPath) {
this.playbackPath = playbackPath;
}
public void setResolvesAbsolutePath(Boolean resolvesAbsolutePath) {
this.resolvesAbsolutePath = resolvesAbsolutePath;
}
}
以下是我的red5-web.properties文件屬性:
webapp.contextPath=/demo
webapp.virtualHosts=*, 192.168.1.20, 192.168.1.20:8088, 127.0.0.1:8088, 192.168.1.20:1935
playbackPath=C://streams/
resolvesAbsolutePath=true
以下是我的RED5-web.xml文件中的bean定義
<bean id="streamFilenameGenerator" class="com.abhinow.demo.CustomFilenameGenerator" >
<property name="playbackPath" value="${playbackPath}" />
<property name="resolvesAbsolutePath" value="${resolvesAbsolutePath}" />
</bean>
上面給出的代碼工作正常,我可以在C:\ streams文件夾中播放視頻,但是當我將播放路徑更改爲共享文件夾,如 /192.1 68.1.20 /小流 它不工作。我正在使用Windows計算機。我還試圖通過在Windows中使用映射網絡驅動器功能將共享文件夾/192.168.1.20/streams映射到網絡驅動器,並將該驅動器的名稱命名爲Z :.然後我試圖通過給路徑 Z:// streams 現在它也不起作用。 任何人請幫助我哪裏錯了。我一直在掙扎兩天。請幫我解決這個問題。
非常感謝。
唯一代碼的答案是不是所有的有用的;考慮爲你的答案起作用添加一個簡短的解釋。 – adamdunson